(转)Jquery+Ajax实现Select动态定数据
2024-08-31 21:40:39
解决思路:
在数据库中建立类型字典式表。将下拉框需要添加的项,在数据库表里中文、英文名称对应起来。
下拉框动态绑定数据库表中需要字段。
- <div id="bgDiv" style="display:none;"></div>
- <a class="btn-lit" href="javascript:" onclick="bgDiv.style.display='inline';advancedQuery.style.display='';addItems()"><span>高级查询</span></a>
在高级查询单击事件中,除了显示查询框外,添加下拉框绑定字段的函数。此处为addItems().
实现代码:
- <script type="text/javascript">
- //动态绑定下拉框项
- function addItems() {
- $.ajax({
- url: "addItem.ashx/GetItem", //后台webservice里的方法名称
- type: "post",
- dataType: "json",
- contentType: "application/json",
- traditional: true,
- success: function (data) {
- for (var i in data) {
- var jsonObj =data[i];
- var optionstring = "";
- for (var j = 0; j < jsonObj.length; j++) {
- optionstring += "<option value=\"" + jsonObj[j].ID + "\" >" + jsonObj[j].chinesename + "</option>";
- }
- $("#dpdField1").html("<option value='请选择'>请选择...</option> "+optionstring);
- }
- },
- error: function (msg) {
- alert("出错了!");
- }
- });
- };
- </script>
后台代码:
- public void ProcessRequest(HttpContext context)
- {
- //context.Response.ContentType = "text/plain";
- //context.Response.Write("Hello World");
- GetItem(context);
- }
- public void GetItem(HttpContext context)
- {
- string ReturnValue = string.Empty;
- BasicInformationFacade basicInformationFacade = new BasicInformationFacade(); //实例化基础信息外观
- DataTable dt = new DataTable();
- dt = basicInformationFacade.itemsQuery(); //根据查询条件获取结果
- ReturnValue = DataTableJson(dt);
- context.Response.ContentType = "text/plain";
- context.Response.Write(ReturnValue);
- //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
利用Ajax、json给前台页面中的select绑定数据源。后台通过两个函数,分别获得数据库表的数据,将数据转为Json格式返回给前台。前台在接收数据后,将数据进行解析,获得下拉框中需要绑定的字段。在绑定时,下拉框的每一项都分别绑定一个文本、value值。文本用于显示,供用户选择。value值,是用户选择了某个字段,取得这个字段的value值,进行后台的查询字段。
最新文章
- UNICODE 7.0定义的表情符
- Fiddler基本原理与抓取Andriod与IOS的App数据包
- JavaScript系列:计算一个结果为30的加法智力题
- 重构18-Replace exception with conditional(条件替代异常)
- (转载)提高mysql插入数据的速度
- Android窗口管理服务WindowManagerService显示Activity组件的启动窗口(Starting Window)的过程分析
- Java代码实现 增删查 + 分页——实习第四天
- itextpdf添加非自带字体(例如微软雅黑)
- shiro salt
- python默认编码设置
- python学习日记(继承和多态)
- 【转】在Express项目中使用Handlebars模板引擎
- 【bzoj 3786】星系探索
- 原生JS封装ajax方法
- 如何搭建Packetbeat性能监控
- OpenGl学习glMatrixMode()函数理解
- 给iOS开发新手送点福利,简述UIView的属性和用法
- NYOJ 136 等式 (哈希)
- LeetCode231.2的幂
- 22.访问jar包下资源路径里的文件