var tempData = null; debugger; $.ajax({ // url:contextPath +"/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList?commodityId="+row.commodityId, url:contextPath +"/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList", data: {"commodityId": row.commodityId}, async: false, success: function (result) { debugger; tempData = result; }, }); tempData = result; return '<input class="easyui-combobox" ' + 'data-options="valueField:\'date_code\',textField:\'data_name\'">'设置tempData为input的data
时间: 2024-02-10 10:06:59 浏览: 274
您可以使用 jQuery 的 `data()` 方法来设置 `input` 元素的 `data` 属性,代码如下:
```javascript
var tempData = null;
debugger;
$.ajax({
url: contextPath + "/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList",
data: {"commodityId": row.commodityId},
async: false,
success: function (result) {
debugger;
tempData = result;
},
});
var inputHtml = '<input class="easyui-combobox" data-options="valueField:\'date_code\', textField:\'data_name\'">';
var inputEl = $(inputHtml);
inputEl.data('data', tempData);
return inputEl.prop('outerHTML');
```
这样,`tempData` 就会被设置为 `input` 元素的 `data` 属性值。另外,为了能够将 `input` 元素插入到 DOM 中,我们还需要使用 jQuery 的 `prop()` 方法将其转换成 HTML 字符串。
相关问题
提升代码速度 foreach (R_DistributionAllopatry r_DistributionAllopatry in q) { BaseBusiness<DMS_TempData> DMS2_Month = new BaseBusiness<DMS_TempData>("monthdb"); var DMS2_MonthService = DMS2_Month.Service; //var qq = Service.GetIQueryable<DMS_TempData>().Where(a => a.SampleID == r_DistributionAllopatry.NewSampleId); var qq = DMS2_MonthService.GetListBySql<DMS_TempData>("select * from DMS_TempData" + r_DistributionAllopatry.TestDataTableName + " where sampleId='" + r_DistributionAllopatry.NewSampleId + "'"); if (qq.Count() > 0) r_DistributionAllopatry.IsCompleted = true; }
这段代码中存在较大的性能问题。主要有以下两点:
1. 在 foreach 循环中,每次都会实例化一个 BaseBusiness 对象,这可能会导致不必要的开销。可以将实例化的代码提到循环外部,避免重复创建对象。
2. 在循环内部,执行了一条 SQL 查询语句,这也会导致性能问题。可以考虑将查询语句改为使用 Entity Framework 的 Linq 语句,或者使用存储过程等方式来避免 SQL 查询语句的性能问题。
改进后的代码如下所示:
```
BaseBusiness<DMS_TempData> DMS2_Month = new BaseBusiness<DMS_TempData>("monthdb");
var DMS2_MonthService = DMS2_Month.Service;
var query = DMS2_MonthService.GetIQueryable<DMS_TempData>();
foreach (R_DistributionAllopatry r_DistributionAllopatry in q)
{
var qq = query.Where(a => a.SampleID == r_DistributionAllopatry.NewSampleId);
if (qq.Count() > 0)
r_DistributionAllopatry.IsCompleted = true;
}
```
以上是基于代码片段进行的简单分析,如果您有更多的代码或者其他方面的问题,欢迎继续提问。
list1 = list(data['交易对手账卡号'].drop_duplicates()) list2 = list(data1['交易对手账卡号'].drop_duplicates()) list3 = list(data2['被查账/卡号'].drop_duplicates()) a = [x for x in list3 if x in list1] for i in a: writer = pd.ExcelWriter('D:\桌面存储目录勿动\上分卡匹配.xlsx') tempdata = data[data['交易对手账卡号']==i] tempdata.to_excel(writer,index = False) writer.close()这段代码遍历写入xlsx只有一条记录,怎么修改
这段代码的问题在于,在每次遍历匹配到一个账号时,都会打开一个新的 Excel 文件,这样就会覆盖之前写入的数据,导致只有最后一条记录被写入。
为了解决这个问题,你可以先创建一个空的 Excel 文件,然后在遍历匹配到的账号时,将相应的数据追加到已有的 Excel 表格中。代码如下所示:
```python
import pandas as pd
# 创建空的 Excel 文件
writer = pd.ExcelWriter('D:\桌面存储目录勿动\上分卡匹配.xlsx')
list1 = list(data['交易对手账卡号'].drop_duplicates())
list2 = list(data1['交易对手账卡号'].drop_duplicates())
list3 = list(data2['被查账/卡号'].drop_duplicates())
a = [x for x in list3 if x in list1]
for i in a:
tempdata = data[data['交易对手账卡号']==i]
tempdata.to_excel(writer,index=False, sheet_name='Sheet1', header=False, startrow=len(writer.sheets['Sheet1'])+1)
# 关闭 Excel 文件
writer.save()
```
在上面的代码中,我们首先创建了一个空的 Excel 文件 `writer`,然后在每次遍历匹配到的账号时,将相应的数据追加到已有的 Excel 表格中,具体实现是通过 `to_excel` 方法实现的。`sheet_name` 参数指定了写入的工作表名称,`header` 参数指定是否要写入列名,`startrow` 参数指定起始行号。在写入数据后,我们不需要关闭 Excel 文件,只需要执行 `writer.save()` 即可。
阅读全文