Ajax获取Json对象绑定下拉框
分享个小实例,废话少说,直接上代码.....
贴上JS代码:

1 <script type="text/javascript">
2 $(function () {
3 $("#btnGet").click(function () {
4 $.ajax({
5 url: "GetDatas.ashx",
6 type: "Post",
7 contentType: "application/json",
8 dataType: "json",
9 success: function (data) {
10 var ddl = $("#ddlDatas");
11
12 //删除节点
13 RemoveOption();
14
15 //方法1:添加默认节点
16 ddl.append("<option value='-1'>--请选择--</option>");
17
18 //方法2:添加默认节点
19 //ddl[0].options.add(new Option("--请选择--", "-1"));
20
21 //转成Json对象
22 var result = eval(data);
23
24 //循环遍历 下拉框绑定
25 $(result).each(function (key) {
26 //第一种方法
27 var opt = $("<option></option>").text(result[key].ProName).val(result[key].ProID);
28 ddl.append(opt);
29
30 //第二种方法
31 // var proid = result[key].ProID;
32 // var proname = result[key].ProName;
33 //调用自定义方法
34 //AppendOption(proid, proname);
35 });
36
37 //第三种方法
38 //$.each(result, function (key, value) {
39 //alert("dd");
40 //var op = new Option(value.ProName, value.ProID);
41 // ddl[0].options.add(op);
42 // });
43 },
44 error: function (data) {
45 alert("Error");
46 }
47 });
48 });
49
50
51 });
52
53 function RemoveOption() {
54 $("#ddlDatas option").remove();
55 }
56
57 function AppendOption(value, text) {
58 $("#ddlDatas").append("<option value='" + value + "'>"+ text + "</option>");
59 }
60 </script>
2 $(function () {
3 $("#btnGet").click(function () {
4 $.ajax({
5 url: "GetDatas.ashx",
6 type: "Post",
7 contentType: "application/json",
8 dataType: "json",
9 success: function (data) {
10 var ddl = $("#ddlDatas");
11
12 //删除节点
13 RemoveOption();
14
15 //方法1:添加默认节点
16 ddl.append("<option value='-1'>--请选择--</option>");
17
18 //方法2:添加默认节点
19 //ddl[0].options.add(new Option("--请选择--", "-1"));
20
21 //转成Json对象
22 var result = eval(data);
23
24 //循环遍历 下拉框绑定
25 $(result).each(function (key) {
26 //第一种方法
27 var opt = $("<option></option>").text(result[key].ProName).val(result[key].ProID);
28 ddl.append(opt);
29
30 //第二种方法
31 // var proid = result[key].ProID;
32 // var proname = result[key].ProName;
33 //调用自定义方法
34 //AppendOption(proid, proname);
35 });
36
37 //第三种方法
38 //$.each(result, function (key, value) {
39 //alert("dd");
40 //var op = new Option(value.ProName, value.ProID);
41 // ddl[0].options.add(op);
42 // });
43 },
44 error: function (data) {
45 alert("Error");
46 }
47 });
48 });
49
50
51 });
52
53 function RemoveOption() {
54 $("#ddlDatas option").remove();
55 }
56
57 function AppendOption(value, text) {
58 $("#ddlDatas").append("<option value='" + value + "'>"+ text + "</option>");
59 }
60 </script>
贴上Html代码:

1 <body>
2 <form id="form1" runat="server">
3 <div>
4 <asp:DropDownList ID="ddlDatas" name="prov" runat="server" style="width:200px;">
5 </asp:DropDownList>
6 <input type="button" id="btnGet" value="获取数据" />
7 </div>
8 </form>
9 </body>
2 <form id="form1" runat="server">
3 <div>
4 <asp:DropDownList ID="ddlDatas" name="prov" runat="server" style="width:200px;">
5 </asp:DropDownList>
6 <input type="button" id="btnGet" value="获取数据" />
7 </div>
8 </form>
9 </body>
贴上后台ashx页面获取数据代码:

1 public class GetDatas : IHttpHandler
2 {
3 //【测试用】简单取得数据
4 public void ProcessRequest(HttpContext context)
5 {
6 string sqlConn=@"Data Source=Admin-PC;Initial Catalog=HolyKnight;Persist Security Info=True;User ID=ni;Password=******";
7 string sql="select * from Provice";
8 using (SqlConnection conn = new SqlConnection())
9 {
10 DataSet ds = BAF.DataBase.SqlHelper.ExecuteDataset(sqlConn, CommandType.Text, sql);
11 DataTable dt = ds.Tables[0];
12 //转成Json格式数据
13 string proStr = JsonConvert.SerializeObject(dt);
14 context.Response.ContentType = "text/plain";
15 context.Response.Write(proStr);
16
17 }
18 }
2 {
3 //【测试用】简单取得数据
4 public void ProcessRequest(HttpContext context)
5 {
6 string sqlConn=@"Data Source=Admin-PC;Initial Catalog=HolyKnight;Persist Security Info=True;User ID=ni;Password=******";
7 string sql="select * from Provice";
8 using (SqlConnection conn = new SqlConnection())
9 {
10 DataSet ds = BAF.DataBase.SqlHelper.ExecuteDataset(sqlConn, CommandType.Text, sql);
11 DataTable dt = ds.Tables[0];
12 //转成Json格式数据
13 string proStr = JsonConvert.SerializeObject(dt);
14 context.Response.ContentType = "text/plain";
15 context.Response.Write(proStr);
16
17 }
18 }
效果:
获取选中的值:

1 //取值
2 $("#ddlDatas").change(function () {
3 //取得选中的文本值
4 var selectText = $(this).find("option:selected").text();
5 alert(selectText);
6 //获取选中的value值
7 var selectVlaue = $(this).find("option:selected").val();
8 alert(selectVlaue);
9 });
2 $("#ddlDatas").change(function () {
3 //取得选中的文本值
4 var selectText = $(this).find("option:selected").text();
5 alert(selectText);
6 //获取选中的value值
7 var selectVlaue = $(this).find("option:selected").val();
8 alert(selectVlaue);
9 });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库