我有一个gridview依赖于三个级联下拉列表(在updatepanel中)。当用户在GridView编辑细胞,改变一个下拉菜单,然后点击“显示”它调用下面的代码隐藏:更新GridView后重新订购
protected void Save_Click(Object sender, EventArgs e)
{
foreach (GridViewRow gvr in MasterDisplay.Rows)
MasterDisplay.UpdateRow(gvr.RowIndex, false);
MasterDisplay.DataBind();
}
的问题是,在下拉菜单会改变gridview的,所以更新的细胞脱身的订单。一个例子:假设我有六个项目:A1,A2,A3,B1,B2,B3。如果我编辑B2的价格,则更改显示'show Bs first'的下拉列表,在结果页面上,我将看到A2的新价格(即任何顺序中的第五个)。
我想,这是因为在UpdateRow(),我们只更新是根据该指数(gvr.RowIndex),所以不知何故GridView控件得到重新显示(不失新的价格数据!),然后更新。
有关如何确保将这些更改保存到相应行的任何想法,而不仅仅是现在发生的行与之前具有相同的索引?
为记录,我想这样做显示点击,因为我'会抛出一个模式说“保存更改?Y/N”,其中'Y'是一个与Save_Click关联的asp:Button。 – ScottieB 2011-12-29 18:45:37