这是合约。我有一个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”变量置于会话状态,以便在调用时存在?
答案 0 :(得分:1)
如果您只想在回发之间保留表,那么您可能需要查看ViewState。会话更多地用于在不同页面上保存信息。