2015-02-06 76 views
1

我有一个带有GridView控件的asp页面。网格视图中的一列是一个下拉列表。在页面加载事件中使用RowDataBound事件填充下拉列表。但是,列表中的某个选项在被选中时将弹出一个对话框,允许用户将新项目添加到列表中,并且新添加的项目将成为该下拉列表中的选定项目。这部分我工作正常,但我希望能够将新项目添加到网格中每一行的下拉列表中。在某种程度上,我如何在页面加载完成后重新绑定所有行中的下拉列表,而不必遍历每个字段?ASP GridView和DropDownList

+0

是否所有下拉列表都从共同的共享数据源填充? – fnostro 2015-02-06 21:22:14

回答

0

如果所有的DDL都有一个共享的DataSource,那么它应该只是在添加新的listitem后强制回发的问题。但你如何添加新的listitem?

如果您的弹出窗口只是简单地将新的html <option>标记添加到html <select>标记,这与更新DDL数据源不是一回事。

对于所有的DDL来显示新的listitem,你的弹出窗口将不得不执行一个回传,更新DDL数据源和GridView中的所有DDL控件都需要反弹。

这回发假设DDL控件通过DataSourceID属性连接到他们的数据源自动发生。如果你正在使用DataSource财产,那么你将不得不调用DataBind()明确每个DDL控制,我认为你说你在GridView RowDataBound事件都在做。

或者你遍历所有的DDL控制客户方,并添加相同的项目,以每个控制,但你会在下一次失去所有这些更改的页面刷新,我不认为这是你想要的。

+0

谢谢。我能够将新值添加到共享数据源,并且所有列表都在Post Back上更新。要将该新值设置为添加它的特定下拉列表的选定值,我必须将该值保留在隐藏字段中,然后可以在Postback和Databind()后访问它。 – 2015-02-11 20:09:06