2010-07-19 41 views
0

我在同一個類中有兩種方法,並想了解如何在第二種方法中使用第一種方法。C#在同一類中使用另一種方法中的方法

//第一種方法

public static void RefreshGridView(GridView GridView1) 
{ 
    GridView1.DataBind(); 
} 

//第二種方法

public static void AssignDefaultUserNameLetter(Literal categoryID, ObjectDataSource ObjectDataSource1) 
{ 
    // declare variable for filter query string 
    string userFirstLetter = HttpContext.Current.Request.QueryString["az"]; 

    // check for category ID 
    if (String.IsNullOrEmpty(userFirstLetter)) 
    { 
     // display default category 
     userFirstLetter = "%"; 
    } 

    // display requested category 
    categoryID.Text = string.Format(" ... ({0})", userFirstLetter); 

    // specify filter for db search 
    ObjectDataSource1.SelectParameters["UserName"].DefaultValue = userFirstLetter + "%"; 

    // HERE IS WHAT I DON"T KNOW HOW! 
    // GET SQUIGLY LINE 
    RefreshGridView(GridView1); 
} 

請注意上面的大寫字母。那就是我試圖調用第一種方法但獲得紅色下劃線的地方。有人可以幫忙嗎?謝謝。

+0

編譯器告訴你什麼錯誤? – 2010-07-19 00:14:28

回答

6

該方法被標記爲static,但GridView1看起來像它是一個實例變量。

您需要更改該方法,以使AssignDefaultUserNameLetter不是靜態的,或者以某種其他方式獲取GridView,例如作爲參數傳入。

+0

安德魯謝謝你!除了其他參數外,我還添加了參數(Gridview GridView1),它可以工作。這是一個正確的方法來做到這一點?謝謝。 – 2010-07-19 00:14:42

+0

我認爲如果你的AssignDefaultUserNameLetter方法只從同一個類中調用,它應該可能是「私有」而不是「公共靜態」,但不知道你在做什麼,我不能肯定地說。 – 2010-07-19 00:20:43

0

您可能不希望這兩種方法中的任何一種爲static,因爲它們看起來都是在您的類的實例變量(它似乎是一種形式)上運行。你有什麼特別的理由讓他們成爲static

+0

原因是因爲我無能爲力。我無法弄清楚如何在我的代碼中實例化它。 Visual Studio說:非靜態字段需要對象引用。所以我把它變成靜態的。我知道這不是一個聰明的舉動,但我只是在學習和痛苦。 – 2010-07-19 00:25:05

相關問題