query ajax json 通过后台代码(查询数据库)绑定html控件select 下拉框实例
2012-05-29 11:18
1091 查看
前台代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>json测试</title>
<script src="../../js/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$.ajax({
url: "test.asmx/GetSupplier", //后台webservice里的方法名称
type: "post",
dataType: "json",
contentType: "application/json;charset=utf-8",
data: '{}',
traditional: true,
success: function(data) {
for (var i in data) {
var jsonObj = $.parseJSON(data[i]);
var optionstring = "";
for (var item in jsonObj) {
jsonObj = eval(jsonObj.Table)
for (var i = 0; i < jsonObj.length; i++) {
optionstring += "<option value=\"" + jsonObj[i].id + "\" >" + jsonObj[i].name + "</option>"; ;
}
// alert(optionstring);
}
$("#ddl1").html(optionstring);
}
},
error: function(msg) {
alert("出错了!");
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="ddl1" name="supplier"></select>
</div>
</form>
</body>
</html>
后台websevice里的方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
///绑定供应商
public string GetSupplier()
{
string ReturnValue = string.Empty;
string sql = "select * from tb_supplier"; //sql语句
DataTable dt = Common.GetDataSet(sql); //数据库帮助类 返回databale类型
ReturnValue = DataTableJson(dt);
return ReturnValue;
}
#region dataTable转换成Json格式
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"");
jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append("\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
#endregion
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>json测试</title>
<script src="../../js/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$.ajax({
url: "test.asmx/GetSupplier", //后台webservice里的方法名称
type: "post",
dataType: "json",
contentType: "application/json;charset=utf-8",
data: '{}',
traditional: true,
success: function(data) {
for (var i in data) {
var jsonObj = $.parseJSON(data[i]);
var optionstring = "";
for (var item in jsonObj) {
jsonObj = eval(jsonObj.Table)
for (var i = 0; i < jsonObj.length; i++) {
optionstring += "<option value=\"" + jsonObj[i].id + "\" >" + jsonObj[i].name + "</option>"; ;
}
// alert(optionstring);
}
$("#ddl1").html(optionstring);
}
},
error: function(msg) {
alert("出错了!");
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="ddl1" name="supplier"></select>
</div>
</form>
</body>
</html>
后台websevice里的方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
///绑定供应商
public string GetSupplier()
{
string ReturnValue = string.Empty;
string sql = "select * from tb_supplier"; //sql语句
DataTable dt = Common.GetDataSet(sql); //数据库帮助类 返回databale类型
ReturnValue = DataTableJson(dt);
return ReturnValue;
}
#region dataTable转换成Json格式
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"");
jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append("\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
#endregion
相关文章推荐
- jQuery+ajax从数据库取值和和绑定前台html控件上,然后再通过ajax把值传到后台,让后台写入到数据库
- asp.net中将数据库绑定到DataList控件的实现方法与实例代码
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- Jquery+json绑定带层次下拉框(select控件)
- 通过ajax方式从后台查询出数据并填入前台的select中
- 通过Ajax方式绑定select选项数据的实例
- 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析
- Ajax获取php返回json数据动态生成select下拉框的实例
- ajax获取数据库,然后json序列化,在前台通过input绑定出来
- JavaScript Ajax Json实现上下级下拉框联动效果实例代码
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- JavaWeb将数据包装成JSON以及JSP通过ajax对JSON的获取与解析(代码实例)
- asp.net中将数据库绑定到DataList控件的实现方法与实例代码
- 通过AJAX获取ashx后台JSON数据并使用bootstrap-Table控件
- JavaScript Ajax Json实现上下级下拉框联动效果实例代码
- 利用AJAX后台查询数据库返回json,前台生成表格
- 如何将数据库中查询的两列n条记录初始化到html的select控件中!
- 牛腩购物9 用户表设计/动软生成器/金钱字段decimal(18, 2)/ 注册的时候的前台js判断/后台代码判断/正则表达式软件/RegexBuddy/设置数据库字段的唯一性约束/如何获取控件在前台html的id值/如何将C#的后台正则换成js的正则
- JavaScript Ajax Json实现上下级下拉框联动效果实例代码
- asp.net中将数据库绑定到DataList控件的实现方法与实例代码