【问题标题】:How to Access variable from different method in C#?如何从 C# 中的不同方法访问变量?
【发布时间】:2016-12-19 11:16:58
【问题描述】:

如何访问 page_load 上的变量并在 c# 中的 ddlApp_SelectedIndexChanged 方法上使用它? 谢谢

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;
}

【问题讨论】:

  • 如果两个方法在同一个类中可以使用全局变量

标签: c# asp.net


【解决方案1】:

您可以在班级中使用私有全局成员。这样,它们只能从类中访问。下面的代码向您展示了如何声明和使用它们

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;
}

【讨论】:

  • 谢谢,现在可以使用了。但似乎它在 Gridview 事件处理程序中不起作用。我使用该变量在 gridview 中设置 ComboBox datasourceID 的数据源。
  • 这是另一个问题,您可以在这里找到答案:stackoverflow.com/q/5976511/6198927。不要忘记将您的问题标记为已回答
  • 谢谢。如何将问题标记为已回答?抱歉,我还是 stackoverflow 的新手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多