我有一个应用程序,具有两个依赖下拉菜单,在那里,如果用户选择一个数值在表框,它更新可用的投入箱列表B。例如品牌/型号的汽车。当用户选择的制造商,名单的模型,将相应更新。

在它,这只会加以处理的自动过帐回事件。什么样的技术/方法,我应该走在asp.net 视?是通过阿贾克斯?只是想快速度在视和寻求建立战略处理共同任务,问我要处理的工作。

我要感谢每个人都作出贡献的人以回答这个员额。

有帮助吗?

解决方案

我想通过Ajax做到这一点。如果你有这些控件:

<select id="makes" /> <select id="models" />

那么你可以使用jQuery做到这一点:

$().ready(function() {
   $("select#makes").change(function() {
        var make = this.value;          
        $.getJSON('models/list?make=' + make, function(data) {
              //load 2nd dropdown with result
        })
   });
});

然后你只需要一个返回JSON数据结构)在ModelsController行动名为List(。

其他提示

你使用ASP.NET 视是有点无关紧要的。你基本上有三种选择对于这种类型的机械上的一个网页。

  1. 如果数据,在你的名单相对较小,并且经常变化的,它可以是最简单的只是为了预载的所有可能的数据页面上,在最初的请求或者在的东西就像一个javascript阵或隐藏的要素在该页标记。当价值的框有变化,javascript只是替代了内容的框B与相应的数据。这一切都发生没有任何要求回到服务器,这使得它很快。但是这种方法打破了当的大小的数据影响的响应时间的初步网页载荷。

  2. 如果数据,在你的名单是的大或经常改变(的时间框架内一个用户将能在网页上作出决定),旧的方法是只有一页,获得重新加载的新的查询的论点时的价值框有变化。代码在背面端的调整输出基于新的参数。这取决于如何复杂的其余部分渲染代码在你的网页,这可能是昂贵的。

  3. 这是一个变化备选办法2并基本上是回答本Scheirman了关于阿贾克斯。你还装载的内容的框B上的要求当框有变化。不同的是你是只重新装载件的网页已经改变,而不是整个页面。

就个人而言,如果数据是小够使用备选案文1,这可能是什么我会去的,由于其性能。否则,与备选案文3,特别是如果你已经有了其它的ajax相关的事实现了。备选方案2似乎被认为是一种传统机械师通过这些天很多人.

功能,将工作来放置这两个下拉列表中他们自己的局部视图,然后选择在利斯塔值时返回这一点。如果不是布局的目的是可行的,则本的方法上面看起来不错。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top