[英]Call non static method from another page
如何从另一个页面调用非静态方法
我不能使用静态方法
我在母版页中有一种方法
现在,我要从母版页方法调用另一页中的方法
母版页:
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
**//Calling GetData method in 01.aspx**
}
01.aspx.cs page:
public void GetData(int Num1, int Num2)
{
int Count = Convert.ToInt32(this.Master.Count);
int PriceSort = Convert.ToInt32(this.Master.Price);
string NameSort = this.Master.Name.ToString();...
}
您不想从codebehind new
另一个ASP.NET页。 而是将代码移到可以利用共享逻辑的类中。
你可以做
YourClassName variableName = new YourClassName();
然后将该方法称为variableName.GetDate(1,2);
。
您必须将方法从private
更改为public
,以便从另一个类调用它。
进一步阅读访问修饰符
如果它是在各个页面之间共享的方法,则实际上不应在特定页面中声明它。 好的设计原则会使它成为一个单独的类的一部分。 假设您将其称为“ MyDataClass”。 (显然选择更合适的东西)。
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
MyDataClass dataClass = new MyDataClass();
dataClass.GetData();
}
并在另一个名为MyDataClass.cs的文件中
public class MyDataClass
{
public void GetData(int Num1, int Num2)
{
//...
}
}
这样,您可以根据需要在多个页面中使用它,甚至可以轻松地在另一个项目中重复使用它。 这种责任的抽象是学习诸如C#之类的面向对象编程的基础知识之一。
访问修饰符需要从私有更改为公共。 此外,您需要使用其他方法更新的所有变量都必须可访问。 (请阅读代码广播员的答案,以获取针对您的问题的更深刻的答案)
进行以下更改:
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
var otherClass = new OtherClass();
otherClass.GetData(Num1,Num2);
}
01.aspx.cs page:
public void GetData(int Num1, int Num2)
{
int Count = Convert.ToInt32(this.Master.Count);
int PriceSort = Convert.ToInt32(this.Master.Price);
string NameSort = this.Master.Name.ToString();...
}
我不确定您的其他班级叫什么,但这应该可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.