我正在用 C# 创建 SharePoint Web 部件,其中一部分将 GridView 控件输出到页面。虽然我可以通过设置 GridView 本身的 CSS 类来相当广泛地控制它的显示方式,但我真正想做的是能够为某些特定的 td 元素指定类。我不确定如何着手执行此操作,或者是否会在 GridView 填充行时或在将 GridView 添加到页面时完成。
在伪代码中,我基本上设想的是能够说出类似 gridView.Row[4].CssClass = "header"
的东西,这将设置第五行的 td GridView 到类“标题”。
我研究过使用 RowDataBound 事件,所以我只是使用以下方法对其进行测试:
protected void outputGrid1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.CssClass = "outputHeader";
}
这可能是我对如何正确使用它的误解,但它似乎没有做任何事情。我认为它会将所有行设置为“标题”类,如果有,我会从那里处理我的逻辑,但我什至无法让它工作。感谢任何人可以提供的任何帮助!
最佳答案
我对 RowDataBound 做了类似的事情:
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Check the XXXX column - if empty, the YYYY needs highlighting!
if (e.Row.Cells[6].Text == " ")
{
e.Row.CssClass = "highlightRow"; // ...so highlight it
}
}
检查您正在做的事情是否正确的一种方法是通过浏览器监视您的 html 输出...像 Firebug 这样的东西真的很有帮助。
这是一些示例 CSS,我们将 CssClass“dataGrid”分配给网格:
/* Used to highlight rows */
table.dataGrid tr.highlightRow td
{
background-color: #FF6666;
border-bottom: 1px solid #C0C0FF;
}
更新: 连接所有这些:我在 aspx 页面上使用自动连接。您的页面声明如下所示:
<%@ Page Language="C#" MasterPageFile="~/XXXXXX.master" AutoEventWireup="true" CodeBehind="YYYY.aspx.cs" Inherits="ZZZ.ZZZ.AAAAAA" Title="View Blah" %>
页面上的此设置允许您使用 UI 连接事件。单击网格,选择属性,单击闪电图标,然后在 RowDataBound 事件下选择您的方法。所有这一切在幕后所做的就是向 DataGridView 添加一个属性,因此:
<asp:GridView ID="uiActionGridView" runat="server" AllowSorting="True" AutoGenerateColumns="False"
OnRowDataBound="uiActionGridView_RowDataBound" OnDataBound="uiActionGridView_DataBound">
- 这显示了正在连接的两个事件,DataBound 和 RowDataBound 事件。
这就是我使用 VS2005 所做的,它似乎“正常工作”。我认为您正在经历的唯一一件事是您在数据绑定(bind)发生后手动绑定(bind)事件。
关于asp.net - 如何为 GridView 中的特定行指定 CSS 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2390200/