1

如何在 GridView 中为 ItemTemplates 设置边框?

以下是 Gridview 代码。

<div>
   <asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns = "false" Font-Names = "Arial" 
    Font-Size = "11pt" AlternatingRowStyle-BackColor = "#C2D69B"  
    HeaderStyle-BackColor = "green" AllowPaging ="true"   
    OnPageIndexChanging = "OnPaging" OnRowDataBound = "RowDataBound"
    PageSize = "10" >
   <Columns>
    <asp:TemplateField>
        <HeaderTemplate>
            <asp:CheckBox ID="chkAll" runat="server" onclick = "checkAll(this);" />
        </HeaderTemplate> 
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" onclick = "Check_Click(this)"/>
        </ItemTemplate>
    </asp:TemplateField> 
    <asp:BoundField ItemStyle-Width = "150px" DataField = "CustomerID" HeaderText = "CustomerID" />
    <asp:BoundField ItemStyle-Width = "150px" DataField = "City" HeaderText = "City"/>
    <asp:BoundField ItemStyle-Width = "150px" DataField = "Country" HeaderText = "Country"/>
    <asp:BoundField ItemStyle-Width = "150px" DataField = "PostalCode" HeaderText = "PostalCode"/>
   </Columns> 
   <AlternatingRowStyle BackColor="#C2D69B"  />
</asp:GridView> 

所有有界字段都有边框,但没有 ItemTemplated 字段。

4

2 回答 2

1

一种解决方法是通过点击 GridView 的 RowDataBound 事件来做到这一点:

protected void MyGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
     foreach (TableCell tc in e.Row.Cells)
     {
         tc.Attributes["style"] = "border-color: #c3cecc";
     }
}

更多信息在这里:http ://codersbarn.com/post/2009/05/31/Set-Color-of-GridLines-in-Gridview.aspx

请参阅评论部分以获取更好的方法...

protected void Page_Load(object sender, EventArgs e)
{
   this.GridView1.Attributes.Add("bordercolor", "c3cecc");
}

“使用 GridView,声明性边框颜色属性添加了一个内联样式声明,该声明仅适用于表格本身,而不适用于单个单元格。

以编程方式添加边框颜色属性不使用内联样式,而是使用 HTML 边框颜色属性,浏览器将其应用于表格内的所有边框。”

还有一件事,如果您使用 Eric Meyer 的重置,它会破坏 GridView 中的表格呈现。该特定问题的解决方案是从重置规则中删除所有表格元素。

于 2012-04-18T05:13:02.887 回答
0

您需要使用ItemStyle字段。在TemplateField文档中找到。

于 2012-04-18T05:09:18.813 回答