zoukankan      html  css  js  c++  java
  • ASPxGridView 列类型

    ---------------------------------------------------------
    -- ASPxGridView 列 http://surfsky.cnblogs.com/
    ---------------------------------------------------------
    基本列(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="ED_CMT" 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>
                    <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》

    ------------------------------------------
    -- 定制窗口
    ------------------------------------------
    定制窗口(CustomizationWindow)
        说明:一个小窗口,展示隐藏的列,可供用户选择,拖动到表格中就会显示,反之则隐藏
        展示定制窗口(隐藏列为Region)
            <dxwgv:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" KeyFieldName="CustomerID" >
                <Columns>
                    <dxwgv:GridViewDataColumn FieldName="ContactName" />
                    <dxwgv:GridViewDataColumn FieldName="CompanyName" />
                    <dxwgv:GridViewDataColumn FieldName="City"  />
                    <dxwgv:GridViewDataColumn FieldName="Region" Visible="false" />
                    <dxwgv:GridViewDataColumn FieldName="Country" />
                </Columns>
                <SettingsCustomizationWindow Enabled="True"  />
                <ClientSideEvents CustomizationWindowCloseUp="grid_CustomizationWindowCloseUp" />
            </dxwgv:ASPxGridView>
        在客户端控制显隐定制窗口
            function button1_Click(s, e) {
                if(grid.IsCustomizationWindowVisible())
                    grid.HideCustomizationWindow();
                else
                    grid.ShowCustomizationWindow();
                UpdateButtonText();   
            }
            function grid_CustomizationWindowCloseUp(s, e) {
                UpdateButtonText();
            }
            function UpdateButtonText() {
                var text = grid.IsCustomizationWindowVisible() ? "Hide" : "Show";
                text += " Customization Window";
                button1.SetText(text);
            }
        相关的 Client API:
            ShowCustomizationWindow()
            HideCustomizationWindow()
            IsCustomizationWindowVisible()

  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/carlows/p/2782075.html
Copyright © 2011-2022 走看看