2016-12-19 45 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