[英]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.