如何在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字段。
答案 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文档中找到。