Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# 无回发的级联下拉列表_C#_Javascript_Asp.net_Drop Down Menu - Fatal编程技术网

C# 无回发的级联下拉列表

C# 无回发的级联下拉列表,c#,javascript,asp.net,drop-down-menu,C#,Javascript,Asp.net,Drop Down Menu,下面是一个场景: 我有一个.aspx页面,有两个下拉列表,其中要加载的数据通常是静态的(但可能每天都会更改),第一个下拉列表始终显示主要类别,第二个下拉列表最初为空 现在,要求是: 当用户从第一个dropdownlist中选择一个类别时,第二个dropdownlist应该基于刚才的选择进行填充 路障: 这应该在没有回发的情况下完成。 我的老板想要像页面上的下拉列表一样的东西 所以我收集的是,我必须在页面加载事件中从数据库检索数据,将其存储在缓存中(或其他地方?),然后使用javascript处理

下面是一个场景:

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

现在,要求是:

当用户从第一个dropdownlist中选择一个类别时,第二个dropdownlist应该基于刚才的选择进行填充

路障:

这应该在没有回发的情况下完成。
我的老板想要像页面上的下拉列表一样的东西

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

我已经有两天没有解决这个问题了,似乎找不到可行的解决方案,需要很大的帮助

提前感谢你对这件事的解释

另外,我是一名ASP.Net C#程序员,对Javascript一无所知。

微软发布了具有

编辑:为了提高检索数据的性能,我建议您使用ASP.NET中的缓存对象,将数据缓存到尽可能靠近您需要的位置,以提高数据的检索性能


另一个技巧是在第一次呈现页面时将所有信息作为json对象发送,这样您就不需要使用webservice调用,只需使用javascript解析读取json对象并从中提取所需信息以填充第二个dropdownlist。

难的是:真正做到客户端。有一个示例可以让您开始

简单的方法。。使用Ajax UpdatePanel并在服务器端执行,但UpdatePanel将使其不执行完整的post返回。(教程)


UpdatePanel将更容易、更快地编写代码

我想我忘了添加,我最初确实使用了updatepanel,但是执行异步回发需要很多时间。我使用了AJAX控件工具包中的级联下拉列表,但即使这样也会导致回发。我的老板不希望在填充第二个下拉列表时有一秒钟的延迟。我想说,那就用“硬”的方式吧。。。学习Javascript的唯一方法就是深入研究,所以请看一下我发布的第一个链接。很抱歉……我发现我必须花更多的时间来磨练我的Javascript技能,无论如何,谢谢你的回复。有一个问题:我能回忆一下pageload缓存中存储的数据表吗?使用javascript,然后使用javascript优化该数据表,然后填充下拉列表?不,我认为您必须在pageload构建整个下拉列表,并使用javascript在下拉列表中显示或隐藏它们。那么,先生,我应该用什么方法来建立下拉列表?我的意思是,我必须将这些值存储在什么类型的对象中,以便javascript能够读取它们。我想我不能使用ListItem[],我也试过了。即使这会导致Web服务运行,并需要大约1-2秒来填充下拉列表,我的老板也希望它能像在windows应用程序中一样工作。@Anchit:下次在你的问题中提到你已经尝试过了。如果你的老板想让它像windows应用程序一样工作,那么建议你做一个。与winforms相比,Web应用程序既有优点,也有缺点。随着ajax的到来,与完全回发模式相比,已经有相当多的性能可以提高。是的,先生,我下次会小心的。它实际上是一个网站,向用户显示信息,下拉菜单基本上是过滤器,将用户带到所需页面(动态)。之所以需要这样一个功能,是因为最近的竞争网站有这样一个功能,尽管我猜这个网站是基于php的。我认为php和asp.net之间的区别并不是真正相关的。两者都可以生成html到浏览器。使用这两种方法,您可以创建出色的web应用程序。而且,这并不意味着你的竞争对手做了你必须模仿他们的事情。尝试原创…我同意,先生,但这是一个非常基本的功能,作为一个用户,我不想在一个网站上等待一些东西,而我可以在另一个网站上不等待任何东西。这一切都是为了更好的用户体验。