web*_*orm 2 asp.net jquery dynamic-rebinding
我有一个很长的人名的下拉列表.多达2,000个名字.我想通过将下拉列表限制为一次一个名称的子集,更容易找到用户感兴趣的名称.我通过创建一系列26个链接(A,B,C ... Z)来完成此操作,这些链接调用后面代码中的方法,该方法仅使用用户单击的字母开头填充下拉列表.
这一切都运行良好,但我希望能够使用AJAX完成下拉列表的更新,而无需刷新页面.我想将jQuery用于AJAX功能而不是ASP.NET AJAX.
我的问题是我不知道如何执行存储过程然后通过jQuery AJAX用新数据集"重新绑定"下拉列表.可能提供和示例或演练的任何建议或资源?谢谢.
一些方向给你.
首先创建一个页面,webservice或httphandler,它将接收你的帖子并返回json.
处理器:
public void GetNames(HttpContext context)
{
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
var results = DataAccess.GetNames(context.Request["letter"]);
string json = //encode results to json somehow, json.net for example.
context.Response.Write(json );
}
Run Code Online (Sandbox Code Playgroud)
标记
<ul>
<li>A</li>
</ul>
<select id="names">
</select>
Run Code Online (Sandbox Code Playgroud)
要执行$ .post的脚本
$(function(){
$("li").click(function(){
var letter = $(this).text();
$.post("SomeUrl/GetNames", {letter: letter}, function(data){
var $sel = $("#names").empty();
$.each(data, function(){
//this assumes the json is an array in the format of {value: 1, name:'joe'}
$sel.append("<option value='" + this.value + "'>" + this.name+ "</option>");
});
}, "json");
});
});
Run Code Online (Sandbox Code Playgroud)
这应该是如何完成任务的一个很好的概述.
一些额外的资源.
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |