在gridView上添加数据属性

时间:2015-03-13 19:09:32

标签: c# asp.net gridview

我试图在gridView中添加数据,但我不知道如何在td中添加此属性

像这样的东西

 <tr>
   <td data-th="Movie Title">Star Wars</td>
   <td data-th="Genre">Adventure, Sci-fi</td>
   <td data-th="Year">1977</td>
   <td data-th="Gross">$460,935,665</td></tr>

这是我的asp.net代码
我尝试在项目模板和Tem​​platefield中添加data-th,但它不起作用

<asp:GridView ID="CerrTick" AllowPaging="true" PageSize="15" Width="100%"  class="rwd-table" OnPageIndexChanging="CerrTick_PageIndexChanging" runat="server" AutoGenerateColumns="false" OnSelectedIndexChanged="CerrTick_SelectedIndexChanged" >
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="btnC" CommandName="Select" class="button prefix bom" runat="server" Text="Seleccionar" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="N° ticket">
            <ItemTemplate >
                <asp:Label ID="N_Tick" runat="server" Text='<%# Eval("N° ticket") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Tecnico"> 
            <ItemTemplate>
                <asp:Label ID="Tec" runat="server" Text='<%# Eval("Tecnico") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Empresa">
            <ItemTemplate>
                <asp:Label ID="Emp" runat="server" Text='<%# Eval("empresa") %>'></asp:Label>
                <asp:Label ID="id_ticket" runat="server" Text='<%# Eval("id_ticket") %>' Visible="false"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Servicio">
            <ItemTemplate>
                <asp:Label ID="serv" runat="server" Text='<%# Eval("servicio") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

2 个答案:

答案 0 :(得分:2)

使用RowDataBound背后的代码

protected void CerrTick_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TableCellCollection cell = e.Row.Cells;
        cell[0].Attributes.Add("data-th", "Movie Title");
        cell[1].Attributes.Add("data-th", "Genre");
        cell[2].Attributes.Add("data-th", "Year");
        cell[3].Attributes.Add("data-th", "Gross");
    } 
}

答案 1 :(得分:1)

如果要避免在后面的代码中执行此操作,可以使用ListView或Repeater构建表并动态分配数据属性。我正在做类似的事情,虽然数据属性被分配给gridview内的标签而不是单元本身。

<asp:Label ID="Label1" runat="server" Text='<%#Eval("value") %>' data-frequency='<%#Eval("frequency") %>' />