|
本帖最后由 wanghenan 于 2014-12-20 11:37 编辑
发表帖子2天多了,没人回复,经过自己查询还是解决了。由于项目中需要需要在前台页面设置默认值功能,刚开始没有研究ExtJS的api,一开始一头雾水,没办法,从api学些,功能截图如下:
该表中如果手动给每个人打分,工作量比较大,所以增加了每个人设置默认,然后可以微调每个人的评分,开始认为简单,用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); 获取值,这可以实现很多功能,比如根据值修改单元格颜色等;
- });
- }
复制代码 就这么多了,希望能帮助到需要的人
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|