当前位置: 首页 > news >正文

Easyui里的datagrid嵌入select下拉框

问题:
想使用datagird里嵌入select下拉框,并在提交form表单时获取datagrid选中的每行数据里的每个下拉框选中的值。
在这里插入图片描述
解决方案:
其中economicIssuesSelect使用下拉框,重点关注
initEconomicIssues(row)方法。这里的方法需要传递row

         $('#queryPcpTable').datagrid({title: 'pcp领用查询信息',width: wd,url: send_url,queryParams:params,striped: true,pagination: true,pageNumber: 1,// 默认初始每页的行数pageSize: 5,// 每页行数可选列表pageList: [5],nowrap: true,checkOnSelect: true,selectOnCheck: true,columns: [[{field: 'checkbox', checkbox: true},{field: 'consumingNo',title: '领用单号',align: 'center',width: 180,formatter:function(value,row,index) {return '<a name="detail_data" href="#" οnclick="javascript:detailRow(this)">'+ value  + '</a>';}},{field: 'consumingNumber', title: '领用数量', align: 'center',width: 120},{field: 'consumingAmount', title: '领用金额', align: 'center', width: wd * (1.3 / (col_size + 1))},{field: 'economicIssuesSelect', title: '领用事项', align: 'center', width: wd * (1.3 / (col_size + 1)),formatter:function(value,row,index) {var selectHtml = initEconomicIssues(row);return selectHtml;}},// {   field: 'economicIssuesNo',//     title: '领用事项', align: 'center',//     width: wd * (1.3 / (col_size + 1)),//     editor: {//         type: 'combobox',//下拉框//         options: {//             valueField: 'economicIssuesNo',//对应为表格中的field//             textField: 'economicIssuesDesc',//显示值//             editable: false,//             panelHeight:102,//控制下拉框高度//             data: economicIssuesNoArryData,	//json数据//             required: false//         }//     }// },{field: 'url', hidden:true }]],onClickRow: function (rowIndex, rowData) {},onCheck: function (rowIndex, rowData) {},onUncheck: function (rowIndex, rowData) {},onLoadSuccess:function (data){// var rows = $(this).datagrid("getRows");// //使等级显示为下拉框// for(var index=0;index<rows.length;index++){//     $(this).datagrid("beginEdit", index);//     if($(this).datagrid("getEditor",{index:index,field:"economicIssuesNo"}).target.combobox('getValue') == ''){//         $(this).datagrid("getEditor",{index:index,field:"economicIssuesNo"}).target.combobox('setValue', "空");//     }// }}});

其中economicIssuesNoArry是下拉框里list值,可以是写死也可以是动态ajax获取,这里的方法重点是select的id,这个id是拼凑出来的,由上个datagrid里的consumingNo(唯一主键)构成

 //初始化领用单号经济事项function initEconomicIssues(obj){if (economicIssuesNoArry.length > 0) {var html = '<select id="economicIssuesSelect' + obj.consumingNo +  '"' +  'class="easyui-combobox" style="width:250px; required="true">';for (var i = 0; i < economicIssuesNoArry.length; i++) {html += '<option value="' + economicIssuesNoArry[i].economicIssuesNo + '">' + economicIssuesNoArry[i].description + '</option>'}html += "</select>";return html;} else {//支出类别var issuesCategory = $("#issuesCategory").val();//支出项目var issuesClass = $("#issuesClass").val();//预算中心var budgetCenter = $('#budgetCenter').val();//机构代码var finBranchCode = $('#responsibleFinBranchCode').val();var html = "";//查询经济事项$.ajax({type: 'post',//     url: '${ctx}economicIssuesTbl/getEconomicIssuesNo.do?businessBook=${businessBook}&billType=${billType}' + '&issuesCategory=' + issuesCategory + '&issuesClass=' + issuesClass,url: '${ctx}economicIssuesSet/getExpenseEconomicIssues.do?isExpensesApply=Y&businessBook=${businessBook}&billType=13&budgetCenter='+ budgetCenter + '&issuesCategory=' + issuesCategory+ '&finBranchCode=' + finBranchCode+ '&issuesClass=' + issuesClass,dataType: 'json',async: false,success: function (result) {var resData = result.rows;for (var i = 0; i < resData.length; i++) {if (resData[i].description.search("餐饮、茶歇") != -1) {economicIssuesNoArry.push(resData[i]);}if (resData[i].description.search("杂费") != -1) {economicIssuesNoArry.push(resData[i]);}}html = '<select id="economicIssuesSelect' + obj.consumingNo  +  '"' +  'class="easyui-combobox" style="width:250px; required="true">';for (var i = 0; i < economicIssuesNoArry.length; i++) {html += '<option value="' + economicIssuesNoArry[i].economicIssuesNo + '">' + economicIssuesNoArry[i].description + '</option>'}html += "</select>";}});return html;}}

获取datagird里的下拉框选中的value和text
这里只需获取选中的rows数组然后通过下标获取对应的行数据,最后通过拼凑id值再使用
$(“#id option:selected”).val();
方法获取select选中的值和value

        var rows = $('#queryPcpTable').datagrid('getSelections');var num = rows.length;......//已选中的领用单增加行var rowObj = rows[i];//获取领用事项的Idvar elementText = "#" +  "economicIssuesSelect" + rowObj.consumingNo + " option:selected";//获取领用事项描述var economicIssuesDesc = $(elementText).text();//获取领用事项novar economicIssuesNo =   $(elementText).val();
http://www.lryc.cn/news/169449.html

相关文章:

  • 计算机专业毕业设计项目推荐03-Wiki系统设计与实现(JavaSpring+Vue+Mysql)
  • 微服务的艺术:构建可扩展和弹性的分布式应用
  • 在PHP8中对数组进行排序-PHP8知识详解
  • Redis混合模式持久化原理
  • 《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(2)
  • 【计算机网络】网络编程接口 Socket API 解读(7)
  • crypto++下载、安装(VS2017)及加解密使用
  • R语言画图
  • redis 核心数据结构
  • RabbitMQ消息可靠性(一)-- 生产者消息确认
  • 9 种方法使用 Amazon CodeWhisperer 快速构建应用
  • 性能测试-性能工程落地的4个阶段(21)
  • 小程序 navigateBack 携带参数返回的三种方式(详细)
  • 通过内网穿透实现远程连接群晖Drive,轻松实现异地访问群晖NAS
  • vue3 + vite常用工具
  • Vue框架分享与总结
  • 声音生成评价指标——使用声音分类模型评价生成声音质量(基于resnetish、VGGish、AlexNet)
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 六)
  • SPA首屏加载速度慢
  • JVM执行流程
  • laravel 凌晨0点 导出数据库
  • mysql MVCC多版本并发控制
  • new/delete, malloc/free 内存泄漏如何检测
  • Java开发推荐关注的网站
  • OpenHarmony社区运营报告(2023年8月)
  • Web学习笔记-React(路由)
  • MySQL无法查看系统默认字符集以及校验规则
  • 不负昭华,前程似锦,新一批研发效能认证证书颁发丨IDCF
  • 深入理解ES6模块化:语法、特性与最佳实践
  • Matlab图像处理-HSI模型