ASP.NET中的sql数据库填充的相关下拉列表

时间:2014-07-08 06:32:16

标签: asp.net sql

我的页面上有3个下拉列表和一个数据列表。所有这些都是根据以前下拉列表中的选定项目从SQL数据库填充的 所有三个下拉列表中的AutoPostBack都设置为true,并且在第一页加载时它们正确显示,即在所有三个下拉列表中选择第一个项目,结果将根据该选择显示在数据列表中。但是当我在第一个下拉列表中更改选择时,只有第二个下拉列表会更新(有时它会更新第三个下拉列表但不一致),并且要在第三个下拉列表上获取更新,我需要更改第二个下拉列表上的选择。数据列表中的结果大部分保持不变,并在我在第三个下拉列表中更改选择时更新。

在第一次下拉菜单中更改选择时,如何更新数据列表需要做什么?

4 个答案:

答案 0 :(得分:0)

要在第一个下拉列表更改时更新数据列表,您必须手动触发回发事件(第二个和第三个下拉列表)!

假设第3个下拉列表中的数据基于第2个选择,在JavaScript中的客户端页面上:尝试选择第一个项目或默认项目。这将填充第3个列表。

一个好的做法是拥有一个默认元素,这不是特定的!

这也是一个设计问题。如果它是一个典型的列表,其中第二个和第三个列表经常在本地更改,那么最好将它预取并存储在本地Json对象中!

答案 1 :(得分:0)

获取在第一个下拉列表更改的selection_index上填充的列表。调用其他两个下拉列表的填充方法......

并在第二个下拉列表的selection_change事件中调用第三个下拉列表的填充方法

答案 2 :(得分:0)

检查selectedIndexchanged方法,并在将数据绑定到datalist之前清除datalist项,然后进行绑定。所以你可以清楚地知道哪些数据没有填充。并在此处发布您的代码,以便wolud给出一个清晰的想法

答案 3 :(得分:0)

通过查看代码,很难回答这个问题。但是通过查看问题的描述,看起来您正在设置AutoPostBack = true,但不处理OnSelectedIndexChanged事件。

首先,您应该为以下三个下拉列表添加OnSelectedIndexChanged事件。

protected void dropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{

}

在每个selectedindex已更改事件中,您需要绑定下一个下拉列表。 也许你可以有一个用于绑定列表视图的常用函数,你需要在每个SelectedIndexChanged事件中调用它。

如果你只是设置AutoPostBack = true并且没有处理selectedindex已更改,那么它无法正常工作