向Child Gridview添加一行

时间:2017-04-13 17:07:34

标签: c# html sql asp.net

我正在尝试拥有一个网页,该网页从一个gridview获取值并将这些值复制到另一个gridview中。问题是我试图复制到的gridview嵌套在已经数据绑定的父网格视图中。但是,每次页面加载时,父网格视图都有一个函数rowDataBound,它将子gridview的复制数据覆盖为父级和子级的原始状态。

Diagram of what my webpage should look like and how it should work

将数据从一个网格视图复制到另一个网格视图后,如何防止rowDataBound被触发?

我一直在研究这个问题,任何回复都会受到赞赏! 感谢

1 个答案:

答案 0 :(得分:0)

我认为这是一个更好的观点。您应该在绑定到GridView之前处理数据。一个简单的解决方案是将数据作为DataTable获取并访问该行以获取包含相关行的数据源。

DataTable myData = GetData();
DataTable dataToInject = new DataTable();

foreach(var row in myData.Rows) {
  if ((int)row["id"] ==  123) {
    dataToInject = (DataTable) row["data"];
  }
}

dataToInject可以在rowDataBound上传递给右行,或者在绑定到任何GridView之前预先处理所有数据,我建议这样做。避免使用rowDataBound并在业务逻辑或应用程序的服务层处理数据。