新工作,新开始,因工作需要使用到UltraWebGrid控件,初学做为记录作用作了以下总结,以后发现其它用法再加以补充:
一、UltraWebGrid控件用法记录:
1.设置行的样式
SelectedRowStyleDefault 设置选中行的样式[使用此标签时必须在DisplayLayout里面设置属性SelectTypeRowDefault="Single"和CellClickActionDefault="RowSelect"或者SelectTypeCellDefault="Single"和CellClickActionDefault="CellSelect",否则没有效果]。
RowStyleDefault 默认行样式。
RowAlternateStyleDefault 隔行变色的样式。
2.设置DisplayLayout标签里面的属性
RowHeightDefault 设置行高。 例:RowHeightDefault="20px"。
AllowColumnMovingDefault 设置是否能移动列。 例:AllowColumnMovingDefault="OnServer"。
NoDataMessage 当没有绑定数据时显示的文本。 例:NoDataMessage="没有任何记录"。
CellClickActionDefault 鼠标点击时选中状态 [NoSet(缺省), CellSelect(选中单元格), RowSelect(选中行)]。
AllowColSizingDefault 调整列宽 [NotSet, Fixed, Free]。
GridLinesDefault 表格边框样式 [NotSet,None,Horizontal,Vertical,Both]。
3.导出数据到Excle表格
需要添加一个控件“UltraWebGridExcelExporter” 在导出的时候调用其方法Export()即可 Export()方法有几种重载调用时可具体查看一下。
4.设置单元格输入验证
需要在<Band>标签里面指定数据源,然后在<Column>标签里面的列中添加列和验证即可例:
<Bands>
<igtbl:UltraGridBand BaseTableName="NewTable" Key="NewTable"> //指定数据源
<Columns>
<igtbl:UltraGridColumn HeaderText="FID" Key="FID" IsBound="true" BaseColumnName="FID" Hidden="True"> //列样式
<Validators>
<igtbl:ValidatorItem Value="RequiredFieldValidator1">
</igtbl:ValidatorItem>
</Validators>
</igtbl:UltraGridColumn>
</Columns>
</igtbl:UltraGridBand>
</Bands>
//下面是验证控件
<asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ControlToValidate="UltraWebGrid1" ErrorMessage="提示:请输入一个值!" BackColor="#FFFFC0" BorderStyle="Ridge" BorderWidth="2px" Font-Size="10pt"></asp:requiredfieldvalidator>
<asp:regularexpressionvalidator id="IntValidator" runat="server" ControlToValidate="UltraWebGrid1" ErrorMessage="提示:请输入正确的人数!" BackColor="#FFFFC0" BorderStyle="Ridge" BorderWidth="2px" Font-Size="10pt" ValidationExpression="^\d+$"></asp:regularexpressionvalidator>
5.前端方法和属性:
方法:
igtbl_getGridById() 获取一个控件实例
igtbl_getActiveRow('控件名') 获取当前活动行
getCellFromKey("字段名").getValue() 获取单元格的值
igtbl_getActiveRow('控件名').getCellFromKey('字段名').getValue() 获取当前活动行的某个单元格的值
igtbl_addNew()增加新行。例:var Grid=igtbl_getGridById("控件ID");var NewRow=igtbl_addNew("控件ID",0);
beginEdit() 开始编辑。例:找到某一个单元格开发编辑 var Grid=igtbl_getGridById("控件ID"); Grid.Rows.getRow(索引).beginEdit(); 就可以使单元格获取焦点,开始编辑。
属性:
grid.Rows.length 属性获取当前显示的行数。例:var grid = igtbl_getGridById('控件ID'); alert(grid.Rows.length);
6.单元格只读:
示例:
function BeforeEnterEditModeHandler(gridName, cellId) { //得到当前行 var Row=igtbl_getActiveRow("DataGrid1"); var c = igtbl_getCellById(cellId); //获取清单类型 var type = Row.getCellFromKey("BILLTYPE").getValue(); //是否计量 var isJL = Row.getCellFromKey("ISJL").getValue(); if (type == "合同清单" || isJL == "已计量") { return true; //返回true为不可编辑,返回false为可编辑 } }
7.判断行是否被选中:getSelected() 方法
示例:
//由于删除的时候可以选中多行,判断选中行数据是否合法(如:选中的数据中既有清单又有拆分清单,既有已计量的也有未计量的,此种情况要提示) //key 列的键 //value 列的值(列的值与value等同则不符合条件,返回等号) function CheckSelectedRows(key, value) { var grid = igtbl_getGridById("DataGrid1"); var rowIndex = ""; for (var i = 0; i < grid.Rows.length; i++) { var row = grid.Rows.getRow(i); //判断第i行是否被选中 if(row.getSelected()) { //根据传递的键值参数确定是否符合条件,不符合则返回所有不符合条件的行号 var valueCurrent = row.getCellFromKey(key).getValue(); if( valueCurrent == value) { if (rowIndex == "") { rowIndex = rowIndex + (i + 1); } else { rowIndex = rowIndex + "," + (i + 1); } } } } return rowIndex; }
注:安装完控件的时候会有帮助文档和示例文档,如果没有什么特别的需要的话, 看这两个文档足够了,不会的内容可以去帮助里面搜索,基本能满足开发需要。
浙公网安备 33010602011771号