微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用国家,州和城市填充DropDownList,而无需维护该任务的数据库

如何解决用国家,州和城市填充DropDownList,而无需维护该任务的数据库

||                                                                                                                   关闭。这个问题需要更加集中。它当前不接受答案。                                                      

解决方法

任何IEnumerable都可以用于IList之类的数据源。列出国家对象并将其设置为数据源。设置DisplayMember和ValueMember,然后将填充列表。     ,我不知道会提供国家/地区/城市列表的任何Web服务,但我想它们可能存在,因为这实际上每天都是相当普遍的情况。 我将提供有关您的第二个问题的信息。这是相关的下拉列表。 当在客户端上完成加载而没有整页回发时,相关的下拉列表始终很棘手,最好做到。但是最后,总归结为填充数据的复杂性和数据量。 数据不多 当您在第一个下拉菜单中有10-50个项目,而在第二个下拉菜单中又有10-50个项目时,可以说您没有太多数据。或者,当下拉列表多于两个时,我们可以说当总共少于x000条记录时,我们没有太多数据(在各种浏览器中进行一些测试以获得一些可接受的限制)。在这种情况下,您可以在HTML中预加载所有这些数据,并且当用户与这些字段进行交互时Javascript可以使用这些数据。 我会这样做。我将在服务器上生成JSON并以HTML形式提供:
var qualifications = {
    \"Manager\": [\"First\",\"Second\",...],\"Developer\": [\"...\",...
};
然后,我要么将我的拳头下拉列表预先填充到服务器上,要么在页面加载时将其填充到客户端上(在jQuery中使用using1ѭ)。然后处理
change
事件将通过使用
specialities
中的数组来填充第二个下拉列表,这些数组是上述关联对象的一部分(我使用的是关联对象而不是数组,因为找到对应的专业数组将更加容易,第二步只需执行以下操作即可:
$(\"#FirstDropDown\").change(function(){
    var specialities = qualifications[$(this).val()];
    ...
});
大量数据 当每个下拉列表中都有大量数据(或频繁更改的数据)时,将它们全部预先加载是不可行的。只有当我们有一些用户界面过程,而用户通常选择许多组合时,这才是可行的(这样我们最终将加载所有数据的90%)。无论如何。 将第一个下拉列表预加载到服务器上(或页面加载时的客户端上) 将客户端事件附加到该第一个下拉列表,该事件发出Ajax请求以获取第二个下拉列表数据:
$(\"#Country\").change(function(){
    $.ajax({
        type: \"GET\",url: \"Geo/GetStates\",data: $(this).val(),success: function(data){
            // populate states dropdown
        },error: function(xhr,state,err){
            // display alert or something
        }
    });
});
当从服务器返回数据时,我们可以填充第二个下拉列表,并在其“ 2”事件上附加类似的行为。 对下一个下拉列表执行类似的操作 这样,由于仅加载少量数据,我们获得快速的页面响应。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。