easyui 赋值绑定问题

wx8849 2014-10-08 02:14:30
function InitGird() {
$('#tt').datagrid({
title: '',
iconCls: 'icon-ok',
width: '100%',
height: '550px',
singleSelect: true,
rownumbers: true,
method: 'POST',
idField: 'PartnerID',
url: '/Partner/GetList',
pagination: true,
frozenColumns: [[
{ title: '年份', width: 100 }
], [
{ field: 'Name', title: '客户', width: 80, align: 'center' }
]],
onClickRow: onClickRow,
toolbar: "#tab_toolbar",
pagination: true, //是否开启分页
pageNumber: 1, //默认索引页
pageSize: 20, //默认一页数据条数
rownumbers: true //行号

});
}


function AddGird() {
InitTarget();
var Year = $("#txtYear").val();
if (Year == "") {
$.messager.alert("友情提示", "请选中目标年份!");
return;
}
var days = $("#setQuarter").combobox('getValue');//季度
List = SpiltType('@ViewBag.GoodsTypeList');//目标类型
var st = [];
var ss = [];
var fs = 0;
if (days <= 1) {
fs = 1;
days = 12;
} else {
fs = days - 2;
}
///根据季度循环生成列表
for (var i = fs; ; i++) {
var day = i;
if (i < 10)
day = "0" + i;
if (i == days) {
st.push({ title: Year + "-" + day, colspan: List.length });
///根据目标类型生成行
for (var yi = 0; yi < List.length; yi++) {
if (List[yi] != "") {
var GoodsTypeId = List[yi].split(',')[1];
var de = Year + "-" + day;
ss.push({
field: List[yi].split(',')[1] + day, title: List[yi].split(',')[0], width: 50, align: 'right',
fieldIdx: List[yi].split(',')[1],
date: day,
editor: { type: 'numberbox', options: { precision: 2 } },
formatter: function (value, row, index) {
return TargerSet(row.PartnerID, this.fieldIdx, this.date);
}
});
}
}
break;
}
else {
st.push({ title: Year + "-" + day, colspan: List.length });
for (var yi = 0; yi < List.length; yi++) {
if (List[yi] != "") {
var GoodsTypeId = List[yi].split(',')[1];
var de = Year + "-" + day;
ss.push({
field: List[yi].split(',')[1] + day, title: List[yi].split(',')[0], width: 50, align: 'right',
fieldIdx: List[yi].split(',')[1],
date: day,
editor: { type: 'numberbox', options: { precision: 2 } },
formatter: function (value, row, index) {
return TargerSet(row.PartnerID, this.fieldIdx, this.date);
}
});
}
}
}
}
$("#tt").datagrid({
columns: [st, ss]
});
}
function TargerSet(PartnerID, GoodsTypeId, date) {
var Year = $("#txtYear").val();
var posData = $("#tt").datagrid("getRows");
var setval = "";
for (var ii = 0; ii < targetlist.length; ii++) {
var datetime = eval("new " + targetlist[ii].TargetMonth.substr(1, targetlist[ii].TargetMonth.length - 2));
if (targetlist[ii].PartnerId == PartnerID && targetlist[ii].GoodsTypeId == GoodsTypeId && Appendzero(datetime.getMonth() + 1) == date) {
setval = targetlist[ii].TargetAmt;
break;
}
}
return setval;
}
值绑定上去了,可是编辑的时候没有值,而且编辑完了 也显示不出来值这个怎么解决
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2014-10-09
  • 打赏
  • 举报
回复
griddata已经是一个数组,就不要再打方括号了: $("#tt").datagrid({ columns: [st, ss], data: griddata }); 还有既然已经有了数据,就不需要再用formatter这种方式提供数据了。
wx8849 2014-10-09
  • 打赏
  • 举报
回复
引用 4 楼 jshi123 的回复:
每一行(一个对象,或者可以说每个数组中的元素)代表一行数据。
该对象中每个冒号前面是field名字,也就是ss.push后面的field的值,
冒号后面是实际数据。
看文档帮助和它的示例:http://www.jeasyui.com/documentation/#cc-properties


我加了也么有用呢?
function AddGird() {
InitTarget();
var griddata = "";
var potData = $("#tt").datagrid("getRows");
for (var n = 0; n < potData.length; n++) {
var datavalue = "";
datavalue += "\"PartnerID\":\"" + potData[n].PartnerID + "\"," + "\"Name\":\"" + potData[n].Name + "\",";
for (var j = 0; j < targetlist.length; j++) {
if (potData[n].PartnerID == targetlist[j].PartnerId) {
var datetime = eval("new " + targetlist[j].TargetMonth.substr(1, targetlist[j].TargetMonth.length - 2));
datavalue += "\"" + targetlist[j].GoodsTypeId + Appendzero(datetime.getMonth() + 1) + "\":\"" + targetlist[j].TargetAmt + "\",";
}
}
datavalue = datavalue.substr(0, datavalue.length - 1);
griddata += "{" + datavalue + "},";
}
griddata = griddata.substr(0, griddata.length - 1);
griddata = eval('[' + griddata + ']'); //$.parseJSON();
var Year = $("#txtYear").val();
if (Year == "") {
$.messager.alert("友情提示", "请选中目标年份!");
return;
}
var days = $("#setQuarter").combobox('getValue');//季度
List = SpiltType('罗技,486|罗技有限光电鼠标,544|PC音箱,704|高端动铁耳塞,1016|蓝牙音箱,1048');//目标类型
var st = [];
var ss = [];

var fs = 0;
if (days <= 1) {
fs = 1;
days = 12;
} else {
fs = days - 2;
}
///根据季度循环生成列表
for (var i = fs; ; i++) {
var day = i;
if (i < 10)
day = "0" + i;
if (i == days) {
st.push({ title: Year + "-" + day, colspan: List.length });
///根据目标类型生成行
var dat = "";
for (var yi = 0; yi < List.length; yi++) {
if (List[yi] != "") {
var GoodsTypeId = List[yi].split(',')[1];
var de = Year + "-" + day;
var retValue = "";
ss.push({
field: List[yi].split(',')[1] + day, title: List[yi].split(',')[0], width: 50, align: 'right',
fieldIdx: List[yi].split(',')[1],
date: day,
editor: 'text', //{ type: 'numberbox', options: { precision: 2 } },
formatter: function (value, row, index) {
retValue = TargerSet(row.PartnerID, this.fieldIdx, this.date);
return retValue;
}
});
}
}
break;
}
else {
st.push({ title: Year + "-" + day, colspan: List.length });
var dat = "";
for (var yi = 0; yi < List.length; yi++) {
if (List[yi] != "") {
var GoodsTypeId = List[yi].split(',')[1];
var de = Year + "-" + day;
var retValue="";
ss.push({
field: List[yi].split(',')[1] + day, title: List[yi].split(',')[0], width: 50, align: 'right',
fieldIdx: List[yi].split(',')[1],
date: day,
editor:'text',// { type: 'numberbox', options: { precision: 2 } },
formatter: function (value, row, index) {
retValue = TargerSet(row.PartnerID, this.fieldIdx, this.date);
return retValue;
}
});

}
}
}
}
alert(griddata);
$("#tt").datagrid({
columns: [st, ss],
data: [griddata]
});
}
wx8849 2014-10-09
  • 打赏
  • 举报
回复
引用 6 楼 jshi123 的回复:
griddata已经是一个数组,就不要再打方括号了: $("#tt").datagrid({ columns: [st, ss], data: griddata }); 还有既然已经有了数据,就不需要再用formatter这种方式提供数据了。
谢谢
jshi123 2014-10-08
  • 打赏
  • 举报
回复
每一行(一个对象,或者可以说每个数组中的元素)代表一行数据。 该对象中每个冒号前面是field名字,也就是ss.push后面的field的值, 冒号后面是实际数据。 看文档帮助和它的示例:http://www.jeasyui.com/documentation/#cc-properties
wx8849 2014-10-08
  • 打赏
  • 举报
回复
引用 1 楼 jshi123 的回复:
formatter只是对表格单元的数据进行格式化,单元格的数据不应该放在这里,而是应该放到data中。 应该再用一个数组,存放数据,格式是{字段名(就是List[yi].split(',')[1] + day),数据值) $("#tt").datagrid({ columns: [st, ss], data: [ {字段1:'值1-1', 字段2:'值1-2'}, {字段1:'值2-1', 字段2:'值2-2'} ] });
还是说跟SS格式一样?
wx8849 2014-10-08
  • 打赏
  • 举报
回复
引用 1 楼 jshi123 的回复:
formatter只是对表格单元的数据进行格式化,单元格的数据不应该放在这里,而是应该放到data中。 应该再用一个数组,存放数据,格式是{字段名(就是List[yi].split(',')[1] + day),数据值) $("#tt").datagrid({ columns: [st, ss], data: [ {字段1:'值1-1', 字段2:'值1-2'}, {字段1:'值2-1', 字段2:'值2-2'} ] });
每一行的值一个{}吗?
jshi123 2014-10-08
  • 打赏
  • 举报
回复
formatter只是对表格单元的数据进行格式化,单元格的数据不应该放在这里,而是应该放到data中。 应该再用一个数组,存放数据,格式是{字段名(就是List[yi].split(',')[1] + day),数据值) $("#tt").datagrid({ columns: [st, ss], data: [ {字段1:'值1-1', 字段2:'值1-2'}, {字段1:'值2-1', 字段2:'值2-2'} ] });

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧