如何在GridView中设置边框到ItemTemplate

时间:2012-04-18 04:58:53

标签: asp.net gridview

如何在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字段。

2 个答案:

答案 0 :(得分: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,声明性bordercolor属性添加内联样式声明,该声明仅适用于表本身,而不适用于单个单元格。

以编程方式添加bordercolor属性不使用内联样式,而是使用HTML bordercolor属性,这些属性适用于表中的所有边框。“

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

答案 1 :(得分:0)

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