C#中的可变范围问题

时间:2009-03-30 18:31:23

标签: c# variables scope

这是合约。我有一个Master-Detail Grid场景。加载页面时加载Master GridView。我正在使用相同DataTable的DataView,它通过过滤我需要在DetailGridView中显示的内容来加载Master来加载Detail GridView。当我查看MasterGridView的第一行时,一切正常。当我尝试查看第二行时,我找不到错误“column [number]。我还注意到”table“变量没什么。

public partial class Gridview_Template : System.Web.UI.Page
{
    DataTable table = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataReader reader = DBSqlHelperFactory.ExecuteReader(
            myconnection,
            "crm_getcustomersummary",
            new SqlParameter("@customerid", "99999")
        );
        table.Load(reader);
        MasterGridView.DataSource = table;
        MasterGridView.DataBind();
    }

    protected void detailGrid_DataSelect(object sender, EventArgs e)
    {
        string searchValue ="number="  + values.ToString();

        DataView dv = new DataView(
            table, searchValue, "number", DataViewRowState.OriginalRows
        );
        DetailGridView.DataSource = dv;

        // ...
    }
}

我是否将“table”变量置于会话状态,以便在调用时存在?

1 个答案:

答案 0 :(得分:1)

如果您只想在回发之间保留表,那么您可能需要查看ViewState。会话更多地用于在不同页面上保存信息。