没有回发的级联下拉列表

时间:2010-08-10 14:08:42

标签: c# javascript asp.net drop-down-menu

所以,这是场景:

我有一个.aspx页面有两个下拉列表,要加载的数据通常是静态的(但可能每天都在变化),第一个下拉列表始终显示主要类别,第二个下拉列表最初为空。

现在,要求是:

当用户从第一个下拉列表中选择一个类别时,应根据刚刚做出的选择填充第二个下拉列表。

路障:

这应该在没有回发的情况下完成 我的老板想要this页面上的下拉菜单。

所以我收集的是,我必须在页面加载事件中从数据库中检索数据,将其存储在缓存中(或其他地方?),然后使用javascript来处理第一个下拉列表中的selectedindexchanged事件,使用存储在pageload中的数据库中的数据,并根据第一个下拉列表的选定值填充第二个下拉列表。

我被困在这两天之后似乎无法找到可行的解决方案,需要很大的帮助。

提前感谢你对这件事情有所了解。

P.S.-我是初学ASP.Net C#程序员,不懂Javascript。

2 个答案:

答案 0 :(得分:3)

Microsoft发布了Ajax Control ToolkitCascading dropdownlist control

编辑:提高检索数据的性能我建议您使用ASP.NET中的缓存对象,并尽可能将数据缓存到您需要的地方尽可能地放置它是一种推动力。

您可以做的另一个技巧是在第一次呈现页面时将所有信息作为json对象发送,这样您就不需要使用webservice调用,而只需使用javascript解析来读出json对象并提取填写第二个下拉列表所需的信息。

答案 1 :(得分:2)

艰难的方式:真正做到客户端。有一个示例here可以帮助您入门。

简单的方法..使用Ajax UpdatePanel并在服务器端执行,但UpdatePanel将使它不发布完整的回发。 (教程here

UpdatePanel将更轻松,更快速地进行编码。