Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP GridView和DropDownList_C#_Asp.net_Gridview - Fatal编程技术网

C# ASP GridView和DropDownList

C# ASP GridView和DropDownList,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个带有GridView控件的asp页面。网格视图中的一列是dropdownlist。使用页面加载事件上的RowDataBound事件填充下拉列表。但是,选择列表中的一个选项后,将弹出一个对话框,允许用户向列表中添加新项目,并且新添加的项目将成为该下拉列表的选定项目。这部分工作正常,但我希望能够将新项添加到网格中每一行的下拉列表中。在某种程度上,我如何在页面加载后重新绑定所有行中的下拉列表,而不必循环遍历每个字段?如果所有DDL都有一个共享数据源,那么在添加新的listitem后,只需强制回

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

如果所有DDL都有一个共享数据源,那么在添加新的listitem后,只需强制回发即可。但是如何添加新的listitem呢

如果弹出窗口只是将新的html
标记添加到html
标记,那么这与更新DDL数据源不同

要让所有DDL显示新的listitem,您的弹出窗口必须执行回发以更新DDL数据源,并且GridView中的所有DDL控件都需要重新启动

这将在回发时自动发生,假设DDL控件通过DataSourceID属性连接到其数据源。如果您正在使用
数据源
属性,那么您必须为每个DDL控件显式调用
数据绑定()
,我想您说过您是在GridView
行数据绑定
事件中这样做的


或者,您可以在客户端循环使用所有ddl控件,并向每个控件添加相同的项,但在下次刷新页面时,您将丢失所有这些更改,我认为这不是您想要的。

所有下拉列表都是从一个公共共享数据源填充的吗?谢谢。我能够将新值添加到共享数据源中,所有列表都会在回发时更新。要将该新值设置为添加该值的特定下拉列表的选定值,我必须将该值保留在一个隐藏字段中,然后可以在回发和数据绑定()之后访问该值。