如何為 GridView 中的特定行指定 CSS 類?
我正在用 C# 創建一個 SharePoint Web 元件,其中一部分將 GridView 控制項輸出到頁面。雖然我可以通過設置 GridView 本身的 CSS 類來對它的顯示方式進行相當廣泛的控制,但我真正想做的是能夠為某些特定的 td 元素指定類。我不確定如何執行此操作,或者是否會在 GridView 填充行時完成,或者在將 GridView 添加到頁面時完成。
在虛擬碼中,我基本上設想的是能夠說出類似
gridView.Row[4].CssClass = "header"的內容,它將 GridView 中第五行的 td 設置為類“標題”。我已經研究過使用 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’ 分配給 Grid:
/* 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 所做的,這一切似乎都“正常工作”。我認為您遇到的唯一事情是您在數據綁定發生後手動綁定事件。