我有SQL表dbo.Clicks看起來像這樣:分別填充並繪製每個gridview單元格?
ColNum Color RowNum Message
1 Gold 1 Text1
1 Black 2 Text2
2 Red 2 MoreText
2 Blue 3 TextX
我的存儲過程返回這樣這個相同的數據。這是基本datatable
:
Col1 Col2
-----------------------
Gold (null)
Black Red
(null) Blue
我填寫每個單元RowDataBound
:
protected void GridViewClicks_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach (TableCell cell in e.Row.Cells)
{
cell.BackColor = ConvertFromHexToColor(cell.Text);
}
}
}
此代碼的工作,因爲它填補了細胞與其對應的背景色。
現在的問題是,我還需要在每個單元格中顯示我的sql表[dbo.Clicks]的內容。這就是我卡住的地方。
另一種方法是,如果我使用示例數據,每個數據表單元都包含顏色和文本,就像這樣。然後我解析它:
Col1 Col2
Gold/Text1 (null)
Black/Text2 Red/MoreText
(null) Blue/TextX
但我在想,必須有一個更優雅的方式來做到這一點。對我而言,這個解決方案非常難看。
我的GridView看起來是這樣的:
<asp:GridView ID="GridViewClicks" runat="server" ShowHeader="False" onrowdatabound="GridViewClicks_RowDataBound">
</asp:GridView>
感謝。
感謝您的回覆。我注意到你正在爲「細胞」設置一個固定值。我不知道數據表有多少列。你的答案仍然有效嗎? – rbhat
這取決於從數據源接收列和顏色的方式。如果它是'文本,顏色,文本,顏色'等,你可以在rowdatabound事件循環,每個單元格的顏色-1' – VDWWD
我已經更新了我的答案一個簡單的例子。 – VDWWD