如何向asp:GridView添加响应行为

时间:2016-11-17 06:05:14

标签: c# asp.net gridview

我希望asp gridview显示响应行为,就像html表那样,没有更多表的css样式 在这里看到http://bootsnipp.com/snippets/featured/no-more-tables-respsonsive-table

有没有办法实现它。

我之前尝试过一种方法,即用html表替换我的gridview并从中应用no-more-table样式 代码背后。但我不想这样做,因为我想要asp:GridView.

提供的所有功能

1 个答案:

答案 0 :(得分:6)

我已经编写了自定义css来实现此功能。要使用我的代码,请按照以下步骤进行操作

Step1 :将您的GridView包含在ID为no-more-gridView的部分中 如下

<section id="no-more-gridView">
    <asp:GridView..>
    .
    </asp:GridView>
</section>

Step2 :从后面的代码(在RowDataBound函数内部)为每个单元格分配一个数据标题属性,如下所示,

e.Row.Cells[0].Attributes["data-title"] = "Col1Name";
e.Row.Cells[1].Attributes["data-title"] = "Col2Name";
e.Row.Cells[2].Attributes["data-title"] = "Col3Name";
.
.

Step3 :最后包含我在下面给出的自定义样式。使用media query将样式应用于您希望它生效的任何屏幕尺寸,这应该可以解决问题。

/*  Author     : Vinay
    Description: Responsive GridView
*/

    /* Force gridview to not be like gridview anymore */
    #no-more-gridView table, 
    #no-more-gridView thead, 
    #no-more-gridView tbody, 
    #no-more-gridView th, 
    #no-more-gridView td, 
    #no-more-gridView tr { 
        display: block; 
    }
    /* Hide table headers (but not display: none;, for accessibility) */
    #no-more-gridView .table_column_head > * { 
        display:none;
    }
    #no-more-gridView tr { all: revert;border: 2px solid #ccc;height:auto !important;}
    #no-more-gridView td { 
        /* Behave  like a "row" */
        border: none;
        border-bottom: 1px solid #eee; 
        position: relative;
        padding-left: 50%; 
        white-space: normal;
        text-align:left;
        padding-bottom: 1em;
    }
    #no-more-gridView td:before { 
        /* Now like a table header */
        position: absolute;
        /* Top/left values mimic padding */
        left: 6px;
        width: 45%; 
        padding-right: 10px; 
        white-space: nowrap;
        text-align:left;
        font-weight: bold;
    }
    /*
    Label the data
    */
    #no-more-gridView td:before { content: attr(data-title); }