2010-10-22 241 views
4

我在編輯gridview行的背景顏色時遇到了一些麻煩。編輯時更改Gridview行的背景顏色?

事情是,我正在使用RowDataBound事件方法根據顯示報告時的標準(3種不同的顏色取決於結果)更改e.Row.BackColor。對於不符合該條件的行,單擊Edit按鈕時將應用GridView的屬性<EditRowStyle BackColor="#999999" />

但是,我似乎無法找到一種方法來改變那些屬於標準的顏色,因爲RowDataBound似乎總是被調用,覆蓋了我所做的任何更改。

有什麼建議嗎?

+0

的RowDataBound只是叫,但你不需要將它綁定在每回發。你必須把你的標準保存在某個地方(在數據庫或視圖狀態下)。然後你可以在RowDataBound中設置Backcolor。 – 2010-10-22 18:26:05

回答

12

寫在電網RowEditing事件一行:

GridView1.EditRowStyle.BackColor = System.Drawing.Color.LightYellow; 
0

爲什麼不寫你自己的邏輯方法來改變行的顏色?通過行循環,這可以避免回發問題......也許!

0

由於@Rami說創建一個方法,通過DataGrid行循環並更改顏色。在PreRender事件處理程序中調用此方法。這樣你每回發一次就調用這個方法。

1

希望這會有所幫助。配置GridView行編輯。這應該是足夠的信息。讓我知道你是否需要更多。

protected void uxGrid_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    ClearBackColor(); 

    GridViewRow row = uxGrid.Rows[e.NewEditIndex]; 
    row.BackColor = Color.LightYellow; 
} 

private void ClearBackColor() 
{ 
    foreach (GridViewRow row in uxGrid.Rows) 
    { 
     row.BackColor = System.Drawing.Color.Transparent; 
    } 
} 
1

嘗試:當你進行數據綁定你的GridView

<asp:GridView runat="server" > 
    <Columns> 
    </Columns> 

    <EditRowStyle BackColor="#999999" />  
    <SelectedRowStyle BackColor="#999999" /> 
</asp:GridView>