2016-12-19 69 views
0

如何訪問page_load上的變量並在c#中使用ddlApp_SelectedIndexChanged方法? 謝謝如何從C#中的不同方法訪問變量?

private void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     ddlRole.SelectedIndex = 0; 
    } 

    string ddl = ddlApp.Value.ToString(); 
    string ddlRoleDs; 
    string ddlMenuDs; 
    string GvDs; 

    if (ddl == "ATTD") 
    { 
     ddlRoleDs = "ddlAttdDs"; 
     ddlMenuDs = "ddlMenuAttdDs"; 
     GvDs = "AttdMenuAssignmentDs";     
    } 
    else if (ddl == "TRVL") 
    { 
     ddlRoleDs = "ddlTrvldDs"; 
     ddlMenuDs = "ddlMenuTrvlDs"; 
     GvDs = "TrvlMenuAssignmentDs";     
    } 

} 

變量:ddlRoleDs,GvDs和ddMenuDs

protected void ddlApp_SelectedIndexChanged(object sender, EventArgs e) 
{   
    ddlRole.DataSourceID = ddlRoleDs; 
    MenuAssignmentGv.DataSourceID = GvDs; 
    ddlMenu.DataSourceID = ddlMenuDs; 
} 
+1

如果這兩種方法都在同樣的類你可以使用全局變量 –

回答

0

您可以在類中使用私有的全球成員。這樣他們只能在課堂上進行訪問。下面的代碼顯示你到底如何聲明和使用它們

private string ddlRoleDs; 
private string GvDs; 
private string ddMenuDs; 

private void Page_Load(object sender, EventArgs e) 
{ 
    // don't declare them here, but you can use them here 
    ddlRoleDs = "test value"; 
    .... 
} 

的值在Page_Load方法設置後,就可以在你的另一種方法可以使用

protected void ddlApp_SelectedIndexChanged(object sender, EventArgs e) 
{   
    ddlRole.DataSourceID = ddlRoleDs; 
    MenuAssignmentGv.DataSourceID = GvDs; 
    ddlMenu.DataSourceID = ddlMenuDs; 
} 
+0

謝謝,它現在可行。但似乎它在Gridview事件處理程序中不起作用。我使用該變量在GridView中設置ComboBox數據源ID的數據源。 – patrixx

+0

這是另一個問題,你可以在這裏找到答案:http://stackoverflow.com/q/5976511/6198927。不要忘記將你的問題標記爲已回答 –

+0

謝謝。如何將問題標記爲已回答?對不起,我仍然在stackoverflow新 – patrixx