如何在asp GridView中添加d​​iv包装器中的每个单元格?

时间:2017-02-12 20:32:29

标签: c# html asp.net gridview

你能告诉我如何在每个单元格中添加每个td生成的div吗?

<asp:GridView ID="XDataGridView"
        CssClass="XDataGridView"
        ClientIDMode="Static"
        AllowPaging="True"
        AllowSorting="True"
        OnSorting="XDataGridView_Sorting"
        OnPageIndexChanging="XDataGridView_PageIndexChanging"
        Font-Size="Smaller"
        runat="server"
        EnablePersistedSelection="True"
        OnRowDataBound="XDataGridView_RowDataBound"
        OnRowCreated="XDataGridView_RowCreated"
        SelectedRowStyle-BackColor="#FF7900"
        meta:resourcekey="XDataGridViewResource1">
        <HeaderStyle CssClass="XDataGridViewHeader" BackColor="DimGray"
            BorderColor="#FF7900" HorizontalAlign="Center" VerticalAlign="Middle" Font-Size="10" Height="34" />
        <PagerSettings Visible="false" />
        <RowStyle BorderColor="#FF7900" Height="34" Font-Size="10" />
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <div id="insideDiv" runat="server"></div>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

我需要每当网格在html中生成其表格时,每个td内容都将包含在div元素中。乍一看应该是一件容易的事,虽然我不知道该怎么做。我尝试过使用ItemTemplate,但似乎没有任何区别。

1 个答案:

答案 0 :(得分:1)

您可以在ItemTemplate

中执行此操作
<ItemTemplate>
    <div><%# Eval("columnA") %></div>
</ItemTemplate>

div元素不需要runat="server"来运行。

<强>更新

如果使用AutoGenerated列,则可以使用RowDataBound事件添加<div>

protected void XDataGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //check if the row is a datarow
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //loop all the cells in the row
        for (int i = 0; i < e.Row.Cells.Count; i++)
        {
            e.Row.Cells[i].Text = "<div>" + e.Row.Cells[i].Text + "</div>";
        }
    }
}