• (DevExpress2011控件教程)ASPxGridView 范例4 :ASPxGridView 行选择、多表头设计、数据导出、主表细表等功能实现


    5、 行选择

    Enable Selected属性设置打钩 AspxGridView 行前面多了一个选择列.拖4个按钮在页面上,并为每个按钮设置事件

    全选


    <dx:ASPxButton ID="ASPxBtnSelectAll" runat="server" Text="全选"

                        AutoPostBack
    ="False" UseSubmitBehavior="False">

                        
    <ClientSideEvents Click="function(s, e) {

             AspxGridView.SelectRows();

    }"
     />

                    
    </dx:ASPxButton>

    全部不选择


    <dx:ASPxButton ID="ASPxBtnUnSelectAll" runat="server" Text="全不选"

                        AutoPostBack
    ="False" UseSubmitBehavior="False">

                        
    <ClientSideEvents Click="function(s, e) {

             AspxGridView.UnselectRows();

    }"
     />

                    
    </dx:ASPxButton>

     

    本页全选


    <dx:ASPxButton ID="ASPxButton1" runat="server" AutoPostBack="False" Text="本页全选"

                        UseSubmitBehavior
    ="False">

                        
    <ClientSideEvents Click="function(s, e) {

             AspxGridView.SelectAllRowsOnPage()

    }"
     />

                    
    </dx:ASPxButton>

     本页全不选

    <dx:ASPxButton ID="ASPxButton2" runat="server" AutoPostBack="False"

                        Text
    ="本页全不选" UseSubmitBehavior="False">

                        
    <ClientSideEvents Click="function(s, e) {

             AspxGridView.UnselectAllRowsOnPage()

    }"
     />

                    
    </dx:ASPxButton>
    获取所选择行的值
    List<object> keyValues = ASPxGridView1.GetSelectedFieldValues("ID");

        StringBuilder sb 
    = new StringBuilder(keyValues[0].ToString());

        
    foreach (object key in keyValues) {

            
    string ID = new Parameter("ID", TypeCode.Int32,key.ToString());

    }

     

    6、 多表头设计

    对于国内很多公司而言,一般都需要一个多表头的表格。

    必须要把虚拟的列设置为一种特别的列类型-GridViewBankColumn. 联合列是一个不同类型的列,它只表述而不直接表述数据的值,但是包括其他子列的集合。

    6.1 新建一个Bank列,并将Caption设置表头

    6.2 将需要合并的列拖入bank列里。

     

    运行效果

    7、 Grid Rows

    7.1 交替色

    为了增加可读行,你可以加亮不同行不同的样式。首先设置 Styles.AlternatiingRow.Enabled 属性为true. 同时设置styles.AlternatingRowBackColor等其他属性。

    7.2 网格行的网络线设置

       ASPxGridView Settings ->GridLines =Both

    7.3 焦点行

     默认情况下,焦点行的特性是取消的。 为了启用它,应该将 SettingsBehavior.AllowFocusedRow 设置为True 

    8、 数据分页和滚动

    8.1ASpxGridView允许横或者竖的滚动条在小的网格控件展示数据

     

    默认的情况下,网格的高度是定义每页多少条记录,控制于SettingsPager.PageSize属性

    Settings->ShowVertivalScrollBar 属性为true verticalScrollbaleHeight 设置它的高度

    Settings->ShowHorizontalScrllBar 属性为true

     

    8.2 冻结列

    列属性中选择 FixedStyle =left

    9、 数据导出

    9.1  全部导出

    protected void btnPdfExport_Click(object sender, EventArgs e) {
            gridExport.WritePdfToResponse();
        }
        
    protected void btnXlsExport_Click(object sender, EventArgs e) {
            gridExport.WriteXlsToResponse();
        }
        
    protected void btnXlsxExport_Click(object sender, EventArgs e) {
            gridExport.WriteXlsxToResponse();
        }
        
    protected void btnRtfExport_Click(object sender, EventArgs e) {
            gridExport.WriteRtfToResponse();
        }
        
    protected void btnCsvExport_Click(object sender, EventArgs e) {
            gridExport.WriteCsvToResponse();
        }

    部分导出

    ASPxGridViewExporter’s ExportedRowType 属性设置为Selected

    4、 ASPxGridView支持复杂的主表细表结构

    10.1 创建2ASPxGridView控件。

         绑定第一个AspxGridView控件,设置SettingsDetail.ShowDetailRow true.   编辑模板 选择DetailRow ,然后将第二个AspxGridView拖入模板内。见下图:

     

    在页面源里ASPxGridView2添加OnBeforePerformDataSelect事件


    <dx:ASPxGridView ID="ASPxGridView2" runat="server" AutoGenerateColumns="False"
       DataSourceID
    ="SqlDataSource2" KeyFieldName="OID" OnBeforePerformDataSelect ="detailGrid_DataSelect" >

     

    Cs代码里填上


    protected void detailGrid_DataSelect(object sender, EventArgs e)

    {
       Session[
    "OID"= (sender as ASPxGridView).GetMasterRowKeyValue();

     }

     sqldatasource2中设置为

    <asp:SqlDataSource ID="SqlDataSource2" runat="server"
            ConnectionString="<%$ ConnectionStrings:Connection String %>"
            SelectCommand
    ="SELECT * FROM [com_Dpt1] WHERE OID = @OID">
            
    <SelectParameters>
      
    <asp:SessionParameter Name="OID" SessionField="OID" Type="Int32" />
            
    </SelectParameters>
        
    </asp:SqlDataSource>

    运行程序。。得到如下结果

     

  • 相关阅读:
    算法导论————KMP
    KMP算法
    几个很好的OJ网站
    查找(二分、hash、桶)
    动态规划
    贪心(未完待续)
    搜索的题
    codeVS 1031 质数环
    《将博客搬至CSDN》
    HDU1717小数化分数2
  • 原文地址:https://www.cnblogs.com/meetweb/p/2169218.html
Copyright © 2020-2023  润新知