ASPxGridView 用法整理

本文深入探讨了ASPxGridView的高级配置选项及其在实际应用中的高效利用,包括属性设置、行为设置、分页、文本设置、加载面板设置、编辑视图设置等关键组件的配置方法,并详细介绍了如何实现动态行选择、遍历、样式定制、分组汇总、排序等功能,同时展示了如何通过模板列、事件回调等特性增强界面交互性和功能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ASPxGridView属性:概述设置(Settings
    <Settings 
        GridLines="Vertical"            : 
网格样式 Vertical, Both, None
        ShowGroupPanel="True"           : 分组面板

        ShowFooter="True"               : 脚注面板
        ShowFilterRow="True"            : 过滤器行
        ShowHeaderFilterButton="true"   : 表头过滤按钮

ShowFilterBar                     :允许显示过滤工具条
        ShowGroupFooter="VisibleAlways" : 
分组脚注面板 Hidden | VisibleIfExpand | VisibleAlways
        ShowPreview="true"              : 预览面板

        ShowVerticalScrollBar="True"    : 垂直滚动条
        VerticalScrollableHeight="250"  : 垂直滚动条
        />

行为设置(SettingsBehavior
    <SettingsBehavior 
        AllowDragDrop="False"           : 
允许托拽
        ColumnResizeMode="Control"      : 列宽度调整模式
        AllowFocusedRow="True"          : 鼠标点击选择行

AllowSort                        :允许排序

AllowGroup                      :允许分组

autoExpandAllGroups            :自动展开所有组

ConfirmDelete                  :允许提交删除

AllowMultiSelection            :允许选择多行

/>

分页(SettingsPager
    <SettingsPager 
        PageSize="30"                   : 
分页大小
        Mode="ShowAllRecords"           : 展示模式
        SEOFriendly="Enabled"           : Search engine friendly
        Position="TopAndBottom"         : 
分页控件位置
        >
        <Summary AllPagesText="
页: {0} / {1} ({2}行)" />
    </SettingsPager>

文本设置(SettingsText
       <SettingsText
        Title="
标题"
        EmptyDataRow="无数据

        PopupEditFormCaption="编辑

        ConfirmDelete="确定删除?

        />

Loading 面板设置(SettingsLoadingPanel
    <SettingsLoadingPanel Mode="ShowOnStatusBar" />


编辑视图设置(SettingsEditing
    <SettingsEditing 
        PopupEditFormWidth = "600px" 
        NewItemRowPosition = "Bottom"
        Mode = "PopupEditForm"
        />

编辑模式 SettingsEditing.Mode
            EditForm               : 
当前行转化为表单,嵌入在行中
            EditFormAndDisplayRow  : 同EditForm,但保留当前行
            Inline                 : 在当前行现场编辑
            PopupEditForm          : 弹出窗口编辑

行详细设置(SettingDetail

<SettingDetail

AllowOnlyOneMasterRowExpanded  :允许只展开一列详细信息

ShowDetailRow                  :允许显示详细列表

 IsDetailGrid                  :允许显示分组

动态选中某一行:

AspxgridView1.Selection.SetSelection(i.true)

遍历所有行:

声明变量:DataRowView dv

         For(int i=0;i< AspxgridView1.VisbleRowCount;i++)

{

选中行提取数据:if(AspxgridView1.Selection.IsRowSelected(i))

{

行数据集  dv=(DataRowView)AspxgridView1.GetRow(i);

}

}

 

ASPxGridView样式 & 格式
---------------------------------------------------------
集中式样式
    <Styles>
        <Header HorizontalAlign="Center" />      : 
标题居中对齐
        <AlternatingRow Enabled="true"/>         : 
交错行效果
        <CommandColumn Paddings-Padding="1" />   : 
    </Styles>

列样式
    <dxwgv:GridViewDataTextColumn FieldName="Total" UnboundType="Decimal">
        <FooterCellStyle ForeColor="Brown"/>
    </dxwgv:GridViewDataTextColumn>

数字日期格式
    
金额
        <dxwgv:GridViewDataTextColumn FieldName="UnitPrice" >
            <PropertiesTextEdit DisplayFormatString="c" />
        </dxwgv:GridViewDataTextColumn>
    
时间
        <dxwgv:GridViewDataDateColumn Caption="Time" FieldName="Time">
            <PropertiesDateEdit DisplayFormatString="HH:mm:ss" />
            <CellStyle HorizontalAlign="Right" />
        </dxwgv:GridViewDataDateColumn>

图像
    <Images ImageFolder="~/App_Themes/Glass/{0}/">
        <CollapsedButton Height="12px" Width="11px" />
        <DetailCollapsedButton Height="9px" Width="9px" />
        <PopupEditFormWindowClose Height="17px" Width="17px" />
    </Images>

 

ASPxGridView分组 & 汇总 & 排序
---------------------------------------------------------
间隔分组:将时间日期字段按个性分组,如年、月、日、周、季度、上周、下周.....
    <dxwgv:GridViewDataDateColumn FieldName="OrderDate" VisibleIndex="3" GroupIndex="0">
        <Settings  GroupInterval="DateYear"/>
    </dxwgv:GridViewDataDateColumn>

汇总
    <TotalSummary>
        <dxwgv:ASPxSummaryItem FieldName="CompanyName" SummaryType="Count"/>
        <dxwgv:ASPxSummaryItem FieldName="Total" SummaryType="Sum" DisplayFormat="c"/>
        <dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Min" />
        <dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Average" />
        <dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Max" />
    </TotalSummary>
        
分组汇总
    <GroupSummary>
        <dxwgv:ASPxSummaryItem FieldName="Country" SummaryType="Count" />
        <dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Sum" />
        <dxwgv:ASPxSummaryItem FieldName="Total" SummaryType="Sum"  DisplayFormat="{0:c}"/>
    </GroupSummary>

 

ASPxGridView 列:
---------------------------------------------------------
基本列(GridViewDataColumn)
    <dxwgv:GridViewDataColumn FieldName="Country" VisibleIndex="5" />

其他列
    <dx:GridViewDataTextColumn />          : 
文本列
    <dx:GridViewDataMemoColumn />          : 
长文本列
    <dx:GridViewDataImageColumn />         : 
图像列
    <dx:GridViewDataBinaryImageColumn />   : 
二进制图像列
    <dx:GridViewDataDateColumn />          : 
日期列
    <dx:GridViewDataTimeEditColumn />      : 
时间列
    <dx:GridViewDataComboBoxColumn />      : 
组合框列
    <dx:GridViewDataDropDownEditColumn />  : 
下拉框编辑列?
    <dx:GridViewCommandColumn />           : 
命令按钮列
    <dx:GridViewDataButtonEditColumn />    : 
编辑按钮列?
    <dx:GridViewDataCheckColumn />         : 
复选框列
    <dx:GridViewDataColorEditColumn />     : 
色彩列
    <dx:GridViewDataHyperLinkColumn />     : 
超链接列
    <dx:GridViewDataProgressBarColumn />   : 
进度条列
    <dx:GridViewDataSpinEditColumn />      : SpinEdit


长文本列(GridViewDataMemoColumn
    
编辑时展现为多行文本框
    <dx:GridViewDataMemoColumn  FieldName="Remarks" Caption="
备注"  
        EditCellStyle-BackColor="Yellow"         
// 行的背景颜色
        PropertiesMemoEdit-Rows="4"           
// 添加或是修改时跨行
        EditFormSettings-ColumnSpan="2"       
//添加或是修改时跨列
        />

超链接列(GridViewDataHyperLinkColumn)
    <dx:GridViewDataHyperLinkColumn FieldName="ArticleId" Caption="
查看"  >
         <PropertiesHyperLinkEdit Text="
查看" TextFormatString="" />
    </dx:GridViewDataHyperLinkColumn>

组合框列(GridViewDataComboBoxColumn
    <dx:ASPxGridView OnCellEditorInitialize="grid_CellEditorInitialize">
        <dxwgv:GridViewDataComboBoxColumn FieldName="City" VisibleIndex="2">
            <PropertiesComboBox EnableSynchronization="False" EnableIncrementalFiltering="True"  DropDownStyle="DropDown" />
        </dxwgv:GridViewDataComboBoxColumn>
    </dx:ASPxGridView>
    protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) 
    {
        // 
用下拉框展示国家下的所有城市绑定数据源
        if(grid.IsEditing && e.Column.FieldName != "City" && !grid.IsNewRowEditing)
        {
            ASPxComboBox combo = e.Editor as ASPxComboBox;
            string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, "Country");
            FillCityCombo(combo, country);
        }
    }

命令按钮列(GridViewCommandColumn
      

 <dx:ASPxGridView runat="server" KeyFieldName="ID" 
            OnRowDeleting="gv_RowDeleting" OnRowUpdating="gv_RowUpdating" OnRowInserting="gv_RowInserting"
       

    <Columns>

 

 一种是添加图片的 <dx:GridViewCommandColumn VisibleIndex="0" ButtonType="Image" Caption=操作">

                        <EditButton Visible="True">

                            <Image ToolTip="修改" Url="Images/edit.png" />

                        </EditButton>

                        <NewButton Visible="True">

                            <Image ToolTip="新建" Url="Images/new.png" />

                        </NewButton>

                        <DeleteButton Visible="true">

                            <Image ToolTip="删除" Url="Images/del.png" />

                        </DeleteButton>

                        <CancelButton Visible="True">

                            <Image ToolTip="关闭" Url="Images/cancel.png" />

                        </CancelButton>

                        <UpdateButton Visible="True">

                            <Image ToolTip="保存" Url="Images/update.png" />

                        </UpdateButton>

                        <ClearFilterButton Visible="true">

                            <Image ToolTip="清空"  Url="Images/del2.png" />

                        </ClearFilterButton>

 

                        <HeaderStyle HorizontalAlign="Center" />

                    </dx:GridViewCommandColumn>
   一种就只这种标准的:     <dxwgv:GridViewCommandColumn>
                    <EditButton   Visible="True" Text="
修改" />
                    <DeleteButton Visible="true" Text="
删除" />
                    <NewButton    Visible="True" Text="
新建" />
                    <CancelButton Visible="true" Text="
取消" />
                    <UpdateButton Visible="true" Text="
保存" />
                    <ClearFilterButton Visible="true" Text="
取消过滤" />
                </dxwgv:GridViewCommandColumn>
            </Columns>
        </dx:ASPxGridView>
        
代码详见《ASPxGridView.DataBind
    
复选框列
        <dxwgv:GridViewCommandColumn ShowSelectCheckbox="True"/>
        <dxwgv:GridViewCommandColumn ShowSelectCheckbox="True">
             <HeaderTemplate>
                 <input type="checkbox" onclick="grid.SelectAllRowsOnPage(this.checked);" title="
选择/放弃选择本页的所有行" />
             </HeaderTemplate>
             <HeaderStyle HorizontalAlign="Center" />
        </dxwgv:GridViewCommandColumn>
    
自定义按钮
        “
删除按钮
            <dx:GridViewCommandColumn Caption="
删除">
                <CustomButtons>
                    <dx:GridViewCommandColumnCustomButton ID="DeleteFile" Text="
删除" />
                </CustomButtons>
            </dx:GridViewCommandColumn>
            protected void gv_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
            {
                if (e.ButtonID == "DeleteFile")
                {
                    long fileId = Convert.ToInt64(gv.GetRowValues(e.VisibleIndex, "FileId"));
                    string fileName = gv.GetRowValues(e.VisibleIndex, "FileName").ToString();
                    string filePath = Common.Config.Path.PhysicalUploadFolder + gv.GetRowValues(e.VisibleIndex, "FilePath").ToString();
                    System.IO.File.Delete(filePath);
                    using (DbFile db = new DbFile())
                        db.DelFile(fileId);
                    ShowData(this.FileBatchId);
                }
            }
        “
复制行按钮
            <dx:ASPxGridView runat="server" OnCustomButtonCallback="grid_CustomButtonCallback">
                <Columns>
                    <dxwgv:GridViewCommandColumn VisibleIndex="0">
                        <CustomButtons>
                            <dxwgv:GridViewCommandColumnCustomButton Text="
复制行" ID="Copy" />
                        </CustomButtons>
                    </dxwgv:GridViewCommandColumn>
                </Columns>
            </dx:ASPxGridView>
            Hashtable copiedValues;
            protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) 
            {
                if(e.ButtonID == "Copy")
                {
                    copiedValues = new Hashtable();
                    foreach(string fieldName in copiedFields)
                        copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName);
                    grid.AddNewRow();
                }
            }
            protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)  
            {
                if(copiedValues != null)
                  foreach(string fieldName in copiedFields)
                      e.NewValues[fieldName] = copiedValues[fieldName];
            }


非绑定列(GridViewDataTextColumn
    <dxwgv:GridViewDataTextColumn FieldName="Total" UnboundType="Decimal" />
    protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs e) 
    {
        // Total = UnitPrice * Quantity
        if(e.Column.FieldName == "Total") 
        {
            decimal price = (decimal)e.GetListSourceFieldValue("UnitPrice");
            int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));
            e.Value = price * quantity;
        }
    }

模板列(GridViewDataTextColumn
    onhtmlrowcreated="grid_HtmlRowCreated" 
    <dxwgv:GridViewDataTextColumn Name="Percent" Caption="Change" FieldName="Change">
        <DataItemTemplate>
            <asp:Image ID="changeImage" runat="server" ImageUrl="~/Images/arGreen.gif" Visible="false" GenerateEmptyAlternateText="True" />
            <asp:Label ID="changePercent" runat="server" Text="" />
            <a href="javascript:void(0);" onclick="OnMoreInfoClick(this, '<%# Container.KeyValue %>')">
更多...</a>
            <a href="../pages/download.ashx?path=../uploads/<%#Eval("FilePath")%>&name=<%#Eval("FileName") %> " >
下载</a>
        </DataItemTemplate>
    </dxwgv:GridViewDataTextColumn>
    protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
    {
        if (!grid.IsEditing && e.RowType == DevExpress.Web.ASPxGridView.GridViewRowType.Data)
        {
            // 
操作 Label 控件
            Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changePercent") as Label;
            decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, "Change");
            label.Text = string.Format("{0:p}", change);
            // 
操作 Image 控件
            System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changeImage");
            img.Visible = false;
            if(change != 0) 
            {
                img.Visible = true;
                img.ImageUrl = change < 0 ? "~/Images/arRed.gif" : "~/Images/arGreen.gif";
                label.ForeColor = change < 0 ? Color.Red : Color.Green;
            }
        }
    }
    
注:模板列中的事件如何写?手工写事件,如btn.OnClick += ...;
    
注:视图模板请参考文档《ASPxGridView.Templates

 

ASPxGridView 事件

RowCreated(创建行数据时触发,类似 GridView  DataItemCreate 事件)
    protected void grid_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e) 
    {
        if(e.RowType != DevExpress.Web.ASPxGridView.GridViewRowType.Data) return;
        // 
设置模板列lable控件值
        Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changePercent") as Label;
        decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, "Change");
        label.Text = string.Format("{0:p}", change);
        // 
设置模板列image控件的图像
        System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changeImage");
        img.Visible = false;
        if(change != 0) {
            img.Visible = true;
            img.ImageUrl = change < 0 ? "~/Images/arRed.gif" : "~/Images/arGreen.gif";
            label.ForeColor = change < 0 ? Color.Red : Color.Green;
        }
    }

HtmlRowPrepared(行准备?可在此设置行的展示效果,如背景)
    protected void grid_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e) 
    {
        bool hasError = e.GetValue("FirstName").ToString().Length <= 1;
        hasError = hasError || e.GetValue("LastName").ToString().Length <= 1;
        hasError = hasError || !e.GetValue("Email").ToString().Contains("@");
        hasError = hasError || (int)e.GetValue("Age") < 18;
        DateTime arrival = (DateTime)e.GetValue("ArrivalDate");
        hasError = hasError || DateTime.Today.Year != arrival.Year || DateTime.Today.Month != arrival.Month;
        if(hasError) {
            e.Row.ForeColor = System.Drawing.Color.Red;
        }
    }

UnboundColumnData (非绑定列数据填充)
    protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs e) 
    {
        if(e.Column.FieldName == "Total") 
        {
            decimal price = (decimal)e.GetListSourceFieldValue("UnitPrice");
            int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));
            e.Value = price * quantity;
        }
    }

CustomColumnDisplayText(定制列文本展示)
     protected void grid_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDisplayTextEventArgs e) 
     {
         if(object.Equals(e.Column, grid.Columns["Size"]))
             e.DisplayText = GetSizeDisplayText(e.Value);
     }

SummaryDisplayText(合计行文本展示)
     protected void grid_SummaryDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewSummaryDisplayTextEventArgs e) {
         if(e.Item.FieldName == "Size") {
             e.Text = GetSizeDisplayText(e.Value);
         }
     }

HeaderFilterFillItems(自定义过滤器处理逻辑)
    protected void grid_HeaderFilterFillItems(object sender, ASPxGridViewHeaderFilterEventArgs e) 
    {
        if(object.Equals(e.Column, grid.Columns["Total"])) {
            PrepareTotalFilterItems(e);
            return;
        }
        if(object.Equals(e.Column, grid.Columns["Quantity"])) {
            PrepareQuantityFilterItems(e);
            return;
        }
    }

---------------------------------------------------------
回调处理
---------------------------------------------------------
CustomCallback
Ajax 回调处理)
    <select id="selGridLayout" onchange="grid.PerformCallback(this.value);" >
        <option selected="selected" value="0">Country</option>
        <option value="1">Country, City</option>
        <option value="2">Company Name</option>
    </select>
    protected void grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) 
    {
        int layoutIndex = -1;
        if(int.TryParse(e.Parameters, out layoutIndex))
            ApplyLayout(layoutIndex); // 
更换布局
    }

CustomButtonCallback(定制按钮的ajax回调处理)
    protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) 
    {
        if(e.ButtonID != "Copy") return;
        copiedValues = new Hashtable();
        foreach(string fieldName in copiedFields) 
            copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName);
        
        grid.AddNewRow();
    }

---------------------------------------------------------
编辑视图
---------------------------------------------------------
InitNewRow
(新建行的数据初始化处理)
    protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e) 
    {
        if(copiedValues == null) return;
        foreach(string fieldName in copiedFields) {
            e.NewValues[fieldName] = copiedValues[fieldName];
        }
    }


CellEditorInitialize
(编辑器初始化)
    protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) 
    {
        if(grid.IsEditing && !grid.IsNewRowEditing && e.Column.FieldName == "City")
        {
            string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, "Country");
            ASPxComboBox combo = e.Editor as ASPxComboBox;
            FillCityCombo(combo, country);
            combo.Callback += new CallbackEventHandlerBase(cmbCity_OnCallback);
        }
    }

StartRowEditing(开始编辑)
    protected void grid_StartRowEditing(object sender, DevExpress.Web.Data.ASPxStartRowEditingEventArgs e) 
    {
        if(!grid.IsNewRowEditing) {
            grid.DoRowValidation();
        }
    }

RowValidating (行数据验证)
    protected void grid_RowValidating(object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e) 
    {
        foreach(GridViewColumn column in grid.Columns) {
            GridViewDataColumn dataColumn = column as GridViewDataColumn;
            if(dataColumn == null) continue;
            if(e.NewValues[dataColumn.FieldName] == null) {
                e.Errors[dataColumn] = "Value can't be null.";
            }
        }
        if(e.Errors.Count > 0) e.RowError = "Please, fill all fields.";
        if(e.NewValues["FirstName"] != null && e.NewValues["FirstName"].ToString().Length < 2) {
            AddError(e.Errors, grid.Columns["FirstName"], "First Name must be at least two characters long.");
        }
        if(e.NewValues["LastName"] != null && e.NewValues["LastName"].ToString().Length < 2) {
            AddError(e.Errors, grid.Columns["LastName"], "Last Name must be at least two characters long.");
        }
        if(e.NewValues["Email"] != null && !e.NewValues["Email"].ToString().Contains("@")) {
            AddError(e.Errors, grid.Columns["Email"], "Invalid e-mail.");
        }

        int age = 0;
        int.TryParse(e.NewValues["Age"] == null ? string.Empty : e.NewValues["Age"].ToString(), out age);
        if(age < 18) {
            AddError(e.Errors, grid.Columns["Age"],  "Age must be greater than or equal 18.");
        }
        DateTime arrival = DateTime.MinValue;
        DateTime.TryParse(e.NewValues["ArrivalDate"] == null ? string.Empty : e.NewValues["ArrivalDate"].ToString(), out arrival);
        if(DateTime.Today.Year != arrival.Year || DateTime.Today.Month != arrival.Month) {
            AddError(e.Errors, grid.Columns["ArrivalDate"], "Arrival date is required and must belong to the current month.");
        }

        if(string.IsNullOrEmpty(e.RowError) && e.Errors.Count > 0) e.RowError = "Please, correct all errors.";

 

   if (e.NewValues["Name"] == null)

            {

                e.RowError = "功能名称不能为空,请填写功能名称";

                return;

            }

            if (e.NewValues["Remarks"] == null)

            {

                e.RowError = "功能备注不能为空,请填写功能备注";

                return;

            }
    }

行修改事件 RowUpdating

  protected void gvFunction_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)

        {

            functionModel.Name = e.NewValues[0].ToString();// 组名称

            functionModel.Remarks = e.NewValues[1].ToString(); // 组备注

            functionModel.FunctionId = e.Keys[0].ToString();// ID

            rmodel = client.FunctionEdit(functionModel);// 返回类型表

            gvFunction.CancelEdit();//结束编辑状态

            e.Cancel = true;

            FunctionDataBind();//更新数据

        }

 

       行添加事件RowInserting

        protected void gvFunction_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)

        {

                functionModel.Name = e.NewValues[0].ToString();// 组名称

                functionModel.Remarks = e.NewValues[1].ToString(); // 组备注

                rmodel = client.FunctionSubmit(functionModel);// 返回类型表

 

                gvFunction.CancelEdit();//结束编辑状态

                e.Cancel = true;

                FunctionDataBind();//更新数据

        }

   行删除事件RowDeleting

        protected void gvFunction_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)

        {

            functionModel.FunctionId = e.Keys[0].ToString();// ID

            client.FunctionInfoDelete(functionModel);

            gvFunction.CancelEdit();//结束编辑状态

            e.Cancel = true;

            FunctionDataBind();//更新数据

        }

 

       初始化回调事件 Callback

        protected void callbackPanel_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)

        {

            strGroupID = e.Parameter.ToString();

            DataBindInfo();// 初始化页面信息

            SelectUser();// 查找组里面的所有用户

            DataCheck();

 

        }

 

获取行展开改变事件 DetailRowExpandedChanged

        protected void gvGroup_DetailRowExpandedChanged(object sender, ASPxGridViewDetailRowEventArgs e)

        {

 

            SYSolution_WebUI.ServiceReference.GroupInfo groupInfoModel = (SYSolution_WebUI.ServiceReference.GroupInfo)((ASPxGridView)sender).GetRow(e.VisibleIndex);// 获取选中行实体

            ASPxGridView gv = (ASPxGridView)gvGroup.FindDetailRowTemplateControl(e.VisibleIndex, "gvGroupName");   // 获取模板内aspxgridView ID名称

            SYSolution_WebUI.ServiceReference.GroupInfo[] model = client.GroupSelUserList("GroupId='" + groupInfoModel.GroupId + "'");// 通过组ID值获取实体对象

            if (model[0].UserInfoList != null && gv != null)// 当用用户列表值与子aspxgridView不为空

            {

                gv.DataSource = model[0].UserInfoList;      // 子aspxgridView绑定数据源

                gv.DataBind();

            }

            if (model[0].UserInfoList[0].Name == "")       // 如果子aspxgridView中的用户列表为空时不显示 不展开

            {

                gvGroup.SettingsDetail.AllowOnlyOneMasterRowExpanded = false;

            }

        }

 

排序事件中重新绑定数据 BeforeColumnSortingGrouping

       protected void gvGroup_BeforeColumnSortingGrouping(object sender, ASPxGridViewBeforeColumnGroupingSortingEventArgs e)

        {

            gvGroup.DetailRows.CollapseAllRows();// 关闭所有DetailoRow

 

            gvGroup.DetailRows.ExpandRow(3);

        }

重绑定数据使用时先选中行,再查看 FocusedRowChanged

Protected void aspxGridView_FocusedRowChanged(object sender,EventArgs e){}

 

行列绑定数据事件CustomUnboundColumnData

Protected void aspxGridView_CustomUnboundColumnData(object sender,EventArgs e){}

 

.隐藏编辑列,在DataBound事件中
protected void ASPxGridView1_DataBound(object sender, EventArgs e)
    {
        if(ASPxGridView1.VisibleRowCount>0)
        {
            //ASPxGridView1.Columns[
命令列索引]
            (ASPxGridView1.Columns[4] as GridViewCommandColumn).NewButton.Visible = false;
        }
    }

一、 基本使用方法 4 1.导入Dll文件 4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明 5 4.删除licenses.licx协议文件(盗版) 5 5.功能概述 5 二、 绑定数据(单层) 5 1.使用DataSource属性绑定DataTable 5 2.使用DataSourceID属性绑定SqlDataSource 6 3.使用DataSourceID属性绑定ObjectDataSource 6 4.使用DataSourceID属性绑定LinqDataSource 9 5.使用DataSourceID属性绑定XmlDataSource 10 三、 绑定数据(嵌套树) 10 1.主从数据绑定 10 四、 客户端行维护(新增、修改、删除等) 12 1.编辑状态 12 2.新增 13 3.修改 13 4.删除 13 五、 服务器端行维护(新增、修改、删除等) 13 1.编辑状态 13 2.新增 13 3.修改 15 4.删除 16 六、 数据保存 17 七、 客户端行选择 17 1.选择页面上所有行 17 2.选中指定行或所有行 18 3.获取选中行 18 4.取消页面上所有行的选择 19 5.取消指定行或所有行的选择 19 八、 服务器端行选择 19 1.可选择性设置 19 2.Selection属性 19 九、 客户端行定位 20 1.将焦点转移到编辑行的指定列 20 2.获取焦点行号 20 3.将某行置为可见(未验证) 20 4.跳转到指定页 20 十、 服务器端行定位 21 1.焦点行 21 2.将某行置为可见 21 3.跳转到指定页 21 十一、 客户端数据搜索 21 1.数据过滤 21 十二、 服务端数据搜索 22 1.数据过滤 22 2.数据搜索 22 十三、 分页 23 1.分页条相关属性 23 2.更改分页条按钮属性 26 3.与分页相关操作 26 十四、 客户端排序 26 1.使用SortBy方法排序 26 十五、 服务器端排序 27 1.排序设置 27 2.使用SortBy方法排序 27 3.直接操作GridViewDataColumn排序 28 4.使用GetSortedColumns方法取排序栏位 28 十六、 服务器端数据分组 28 1.数据分组的前提条件 28 2.使用GroupBy方法实现数据分组 28 3.分组的展开与折叠 29 4.判断分组行是否展开 29 5.数据分组的相关设置 29 6.按分组值排序 30 十七、 客户端数据分组 30 1.使用GroupBy方法实现数据分组 30 2.分组的展开与折叠 30 3.判断分组行是否展开 31 4.判断是分组行还是数据行 31 5.用户拖动栏位到分组带实现分组 31 十八、 数据导出 31 1.内置数据导出的前提条件 31 2.支持的数据导出类型 32 3. ASPxGridViewExporter重要属性 32 4.主从ASPxGridView数据导出 32 5.导出到Pdf时中文乱码问题的解决 33 十九、 报表打印 33 二十、 懒加载 33 二十一、 客户端栏位取值与赋值 33 1.使用GetPageRowValues取当前页指定栏位值 33 2.使用GetRowValues取指定行指定栏位值 34 3.使用GetSelectedFieldValues取选中行指定栏位值 34 4.取栏位实例 34 5.使用GetColumnsCount取栏位总数 34 6.使用MoveColumn隐藏和移动栏位 34 7. 使用GetRowKey取行主键值 35 二十二、 服务器端栏位取值与赋值 35 1.取行值 35 2.取列值 36 二十三、 栏位编辑风格 38 1.AspxGridView栏位类型 38 2.GridViewColumn服务器端重要属性 38 3.GridViewColumn服务器端方法 40 4.GridViewCommandColumn:命令按钮列 41 5. GridViewDataColumn:基本数据列 42 6.GridViewDataButtonEditColumn:编辑按钮列 45 7.GridViewDataCheckColumn: 复选框列 45 8.GridViewDataTextColumn:文本列 45 二十四、 栏位格式化 45 二十五、 固定列 45 二十六、 栏位拖动 45 二十七、 栏位合计 46 二十八、 栏位初始值 46 二十九、 栏位可编辑性 46 三十、 栏位数据校验 46 1.行数据校验(编辑状态) 46 三十一、 客户端事件 49 三十二、 服务器端事件 49 1.服务器事件索引 49 2.AutoFilterCellEditorCreate 49 3.AutoFilterCellEditorInitialize 50 4.BeforeGetCallbackResult 50 5.BeforePerformDataSelect 51 6.CancelRowEditing 51 7. CellEditorInitialize 51 7. ClientLayout 52 8. CustomButtonCallback 52 9. CustomCallback 53 10. CustomColumnDisplayText 54 11. CustomColumnGroup 54 12. CustomColumnSort 55 13. CustomDataCallback 56 14. CustomErrorText 57 15. CustomGroupDisplayText 57 16. CustomJSProperties 58 17. CustomSummaryCalculate 58 三十三、 快捷键 59 三十四、 样式 59 1.GridViewStyles重要属性 59 2. GridViewAlternatingRowStyle重要属性 59 三十五、 AspxGridView服务器端重要属性 60 三十六、 AspxGridView服务器端重要方法 60 三十七、 GridViewColumnCollection服务器端重要属性 61 三十八、 AspxGridView客户端重要属性 61 三十九、 AspxGridView客户端常用方法 64 1.PerformCallback 77 四十、 AspxGridView客户端非常用方法 78 四十一、 ASPxClientGridViewColumn(客户端栏位)常用属性 79 四十二、 嵌套AspxGridView的特殊控制 80 1.控制在同一时间只允许一行展开 80 2.SettingsDetail属性设置 80 3.嵌套AspxGridView树展开与折叠(客户端) 80 四十三、 AspxGridView客户端源代码可借鉴点 81 四十四、 AspxGridView服务器端源代码可借鉴点 81
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值