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;
        }
    }

aspx控件属性的更多相关文章

  1. ExtJs控件属性配置详细

    序言:    1.本文摘自网络,看控件命名像是4.0以前的版本,但控件属性配置仍然可以借鉴(不足之处,以后项目用到时再续完善). Ext.form.TimeField: 配置项:            ...

  2. 编写Delphi控件属性Stored和Default的理解及应用

    property ButtonSize: Integer read FButtonSize write SetButtonSize default 0;    property Color: TCol ...

  3. Android控件属性大全(转)

    http://blog.csdn.net/pku_android/article/details/7365685 LinearLayout         线性布局        子元素任意: Tab ...

  4. selenium修改控件属性

    起因:在进行退出的时候,控件属性显示为不可显示,于是在界面上是不可以点击的,如果想点击这个按钮,只能通过修改控件属性,进行点击 上图看控件,正常来说,点击坐边的用户名,下拉会出现一个logout,退出 ...

  5. FoxOne---一个快速高效的BS框架--WEB控件属性编辑器

    FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...

  6. Android控件属性大全[整理转载]

    控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或falseandroid:layout_ ...

  7. Django ModelForm修改默认的控件属性

    Django 中利用ModelForm 可以快速地利用数据库对应的Model 子类来自动创建对应表单. 例如: from django.db import models from django.for ...

  8. WPF编程,通过Double Animation动态更改控件属性的一种方法。

    原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...

  9. WPF编程,通过【帧】动态更改控件属性的一种方法。

    原文:WPF编程,通过[帧]动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/detail ...

随机推荐

  1. CentOS安装zookeeper

    1.zookeeper是个什么玩意? 顾名思义zookeeper就是动物园管理员,他是用来管hadoop(大象).Hive(蜜蜂).pig(小猪)的管理员, Apache Hbase和 Apache  ...

  2. C#获取CPUID(MD5输出),网卡ID,主DNS,备用DNS

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  3. BZOJ 3752 世界树

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3572 题意:给出一棵树.若干询问.每个询问给出m个点,输出每个点管辖的点的个数.x ...

  4. BZOJ 3144 切糕(最小割)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3144 题意: 思路:我们假设没有那个D的限制.这样就简 单了.贪心的话,我们只要在每一个 ...

  5. Java-集合框架整理

    一.List 接口集合: 1.优势以及特点:有序,允许重复元素 . 2.实现类: * AarrayList 类:不同步,可变长度数组,倍增率为 1/n ; * LinkedList 类:不同步,链表结 ...

  6. FZU 2148 Moon Game

    Moon Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  7. socket 异步选择 WSAAsyncSelect 用法

    WSAAsyncSelect 实现给异步socket给了另一种实现方式,就是通过窗口消息的方式来提醒对socket接收还是发送 msdn有非常全面的解释:https://msdn.microsoft. ...

  8. 异步设备IO 《windows核心编程》第10章学习

    异步IO操作与同步操作区别: 在CreateFile里的FILE_FLAG_OVERLAPPED标志 异步操作函数LPOVERLAPPED参数 接收IO请求完成通知 触发设备内核对象 缺点:同一个设备 ...

  9. PCL点云库:ICP算法

    ICP(Iterative Closest Point迭代最近点)算法是一种点集对点集配准方法.在VTK.PCL.MRPT.MeshLab等C++库或软件中都有实现,可以参见维基百科中的ICP Alg ...

  10. shell应用——主控脚本实现(1)

    shell脚本作用:内网ip,公网ip :cpu负载,内存使用量:ngix和mysql...