我处理的应用程序都是用于 Intranet 网站的 ASP.NET 应用程序。我们正在向应用程序添加越来越多的 JQuery 客户端代码,以增强用户体验。然而,下拉框填充仍然在代码隐藏页面上完成,如 1 中所述。
“现在”最好的方法是什么:
使用 ASP.NET 服务器端控件 使用 asp:DropDownList 在服务器上执行数据绑定(bind)以最初填充列表
进行 JQuery AJAX 调用 从 ASP.NET Web 服务获取 List<> 形式的数据,并使用 Jquery 为每个返回的列表项创建选项。
使用 View 模型 使用类似于 2 中的 Web 服务,但将结果填充到 knockouts View 模型中,并使用其数据绑定(bind)功能让 knockout 填充选择选项。
谢谢!
最佳答案
您想要做的大部分事情取决于您如何将数据发送回服务器。正如其他人所建议的,对于大型列表,使用选项 #2 或 #3 是最佳选择。但是,通过这样做,您的 DOM 元素将不会添加到页面 ViewState 中,并且在回发到页面时会遇到问题。您的下拉列表选择的值将在回发时丢失。如果您打算使用 AJAX 将表单数据发送到服务器,并且页面不会执行完整的回发,那么您就可以继续,因为不会重绘页面对象。
使用 AJAX 填充页面将使您能够更好地控制用户体验,因为您可以在页面加载后加载大型列表。您的页面可以变得更加动态,您的用户会欣赏这一点。在我们公司,我们处理大量数据,一次性将所有内容发送到页面是行不通的。此外,我们有来自世界各地的用户访问页面,页面加载速度绝对是一个问题。 AJAX/JSON 允许所有用户更快地加载我们的页面。我们在客户端完成所有操作,并且仅使用 AJAX 将数据发送回服务器,因此我们永远不会遇到回发问题。
按照你所知道的去做。然而,绝对值得您花时间运行一些 AJAX 测试,看看您和您的同事对这种新方法的适应程度如何。
关于jquery - 使用 ASP.NET、Knockout.js、JQuery 将数据绑定(bind)到 <select> 的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412351/