FineUI 官方论坛
标题:
获取和修改Grid表格中的编辑列单元格。
[打印本页]
作者:
wanghenan
时间:
2014-12-17 20:05
标题:
获取和修改Grid表格中的编辑列单元格。
本帖最后由 wanghenan 于 2014-12-20 11:37 编辑
发表帖子2天多了,没人回复,经过自己查询还是解决了。由于项目中需要需要在前台页面设置默认值功能,刚开始没有研究ExtJS的api,一开始一头雾水,没办法,从api学些,功能截图如下:
[attach]7017[/attach]
该表中如果手动给每个人打分,工作量比较大,所以增加了每个人设置默认,然后可以微调每个人的评分,开始认为简单,用html操作了,代码如下:
function ModifyData(colIndex,value)
{
var grid = F('<% =Grid1.ClientID%>');
var arrayTr = document.getElementById(grid.getId() + "-normal-body").firstChild.firstChild.lastChild.getElementsByTagName('tr');//5
var trCount = arrayTr.length;
var arrayTd;
var td;
for (var i = 0; i < trCount; i++) { //i=0表示表头等没用的行
arrayTd = arrayTr[i].getElementsByTagName("td");
arrayTd[colIndex].firstChild.innerHTML = value;
}
}
复制代码
后来发现表格上面是修改了,但是在后台发现还是获取不到数据,该方法最后放弃。
最后还是从ExtJS的api开始学起,最后的解决代码如下:
<td style="text-align:center;height:30px;font-size:14px;width:33%;"><f:Label ID="tName" runat="server" Text="设置打分默认值:"></f:Label><f:DropDownList ID="SelectUser" runat="server" Width="90px"></f:DropDownList>
<f:DropDownList ID="SelectLevel" runat="server" Width="65px" AutoPostBack="true"><Listeners><f:Listener Event="change" Handler="onchange" /></Listeners></f:DropDownList></td>
复制代码
function onchange(combox) { //绑定事件,这个没什么好说的
var user = F('<% =SelectUser.ClientID%>');
GetColIndex(user.getValue(),combox.getValue());
};
复制代码
function GetColIndex(Name, value)
{
var grid = F('<% =Grid1.ClientID%>');
var columns = grid.columns; //获取表格列数组
Ext.Array.each(columns, function (column, index) { //遍历列数组
if (column.text == Name) 判断列名是否是符合条件,这里可以获取列的很多信息,自己可以通过浏览器的js调试查看下,
{
ChangeRowData(column.dataIndex,value); //dataIndex的值一般是这样的 Panel1_Grid1_ctl04
}
});
}
复制代码
function ChangeRowData(ColName, value)
{
var grid = F('<% =Grid1.ClientID%>');
grid.getStore().each(function (record) { //这里是关键部分,数据都在record中,
record.set(ColName, value); //循环设置该列的值, var value = record.get(ColName); 获取值,这可以实现很多功能,比如根据值修改单元格颜色等;
});
}
复制代码
就这么多了,希望能帮助到需要的人
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4