2010-06-08 67 views
0

我有一个ASP .net网格视图。它有一些模板列,如命令按钮,文本框和下拉控件。当我点击命令按钮时,需要在当前行的下面插入一个新行(从我点击命令按钮的位置)。在网格视图中的行之间添加新行

如果我有1和2行,我打了ROW1新行命令按钮需要行1和2

之间插入现在的新行中我应该可以从下拉菜单中选择值和在文本框中输入一些值,最后点击保存按钮。 (这应该工作正常,因为我期待)

网格视图绑定到某些数据源说,例如现在的数据表。

单方面,我可以考虑的是当点击命令按钮,我可以添加一个新的行到我的服务器端代码中的数据表,并重新绑定网格。但我不确定,从用户界面的角度来看,我可以如何确保新行恰好在我点击命令按钮的那一行之下。

任何想法或意见?

回答

0

我认为如果您尝试将数据行添加到数据源中,然后再绑定到GridView,则会更容易。如果你有DataSet或者一个自定义的实体集合,这很容易。因为,你正在使用DataTable,这也将起作用。处理单击事件并查找用户单击的行。回到dataTable并在那里添加一个空行。这将确保GridView中的控件持久化,您不必担心添加DropDown控件等。

+0

我已经做到了这一点,但从UI的角度来看,添加的新行将在网格的末尾。但从用户界面的角度来看,我希望将新行添加到我点击命令按钮的那一行。这就是我要求在BETWEEN中添加一个新行的问题 – SARAVAN 2010-06-09 15:33:34

0

您必须按保存在不可见列中的虚拟索引对数据源进行排序。在第一个数据绑定上(也许你因为排序功能而采用DataView),它将设置为原始rowindex。保存按钮第一次点击后,您将再次从数据库中获取数据表,并在“selected”行之后添加具有索引的附加行。然后,再次将GridView绑定到已排序的DataView。

我认为你需要另一个无形的列来检测“临时”行。如果你不需要编辑“正常”的行,那么你可以使用edititemtemplate。否则,您可以使下拉框和文本框可见,其他控件在GridView.OnRoawDataBound中不可见。