博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

UltraWebGrid用法简述

Posted on 2013-03-31 22:58  Tu.dou  阅读(940)  评论(0)    收藏  举报

  新工作,新开始,因工作需要使用到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;
        }

 

注:安装完控件的时候会有帮助文档和示例文档,如果没有什么特别的需要的话, 看这两个文档足够了,不会的内容可以去帮助里面搜索,基本能满足开发需要。