2013-05-08 59 views
-1

我有一个asp:formview。在其编辑模板中,我有6个下拉菜单,这是一对国家,州和城市。FormView中的下拉列表中的数据绑定

要求:

  1. 在页面加载和国家1得到COUNTRY2填充。
  2. 在国家1和国家2的选定索引位置上,分别填充state1和state2。
  3. 与state1和state2的变化相似,city1和city2将被填充。

  4. 另外我需要帮助绑定窗体,当它在编辑模式下打开。如何绑定基于来自数据库的值的三个下拉列表

请帮我解决这个问题。

+0

也许一个BindingList可能适合你。 – MethodMan 2013-05-08 05:35:57

+0

这将工作只是改变代码为DropDownList http:// stackoverflow工作。com/questions/6164264/bindinglist-with-my-class-populating-a-combobox-using-a-property-of-it – MethodMan 2013-05-08 05:37:54

+0

@DJKRAZE:任何与asp.net formview相关的参考将更加快速和有帮助 – 2013-05-08 05:59:47

回答

0

[更新]正如其他人的建议,我会尝试简单的价值绑定到您的下拉菜单,看看是否有效。我知道它总是无法正常工作,因为我已经完成了下面的解释(主要是通过Telerik控件,尽管这些小代码片段不包括这些)。


我太累了编写代码为雅,但有一定的帮助。在Databound的每个下拉列表中,即使您可以通过执行此类操作来确定要选择的项目。

DropDownList ddl = (DropDownList)sender; 
FormView frmV = (FormView)ddl.NamingContainer; 
string field_value = (frmV.DataItem as DataRowView)[ ddl.DataTextField ].ToString(); 
ListItem lm = ddl.Items.FindByValue (field_value); 
if (lm != null) lm.Selected = true; 

至于在表单视图做级联下拉菜单,对你的下拉列表中选择您的SelectedIndexChanged事件,你需要找到受影响和设置参数,并重新绑定数据他们的其他下拉列表。您可以使用与上述类似的方法,在您的selectedIndexChanged事件中,您通过下拉列表的命名容器获取表单视图,然后使用formview的findcontrol获取您需要修改的其他下拉列表。

我希望有帮助。如果我更清醒,我会给你一个更好的例子。

也是一对夫妇。

1)为了获得更好的性能,我会为您的下拉列表使用web服务,但是我会让您找出这个问题或者在另一个线程中提问。

2)我注意到有时当我有三个不同的控件绑定到同一个sqlDataSource有时奇怪的事情发生,如果你不小心。像你的国家下降可能是。有时候,我抓住从一个数据集,而不是直接像绑定到它的视图,该链路

http://trappedinhoth.blogspot.com/2008/10/for-reference-getting-datatable.html

3)为了更好的性能,你可以做很多这在JavaScript中的客户端。你可以在不同的线程中询问这个问题:)

这种类型的事情是一种痛苦,但是一旦你做了几次它就会变得乏味。祝你好运。