目标:目标是根据数据表中的文本值动态设置 System.Drawing.Color。文本值是 System.Drawing.Color 中颜色的名称。目的是根据给定值更改网格的背景颜色。
问题:我现在使用的方法没有从数据表中获取值并将颜色设置为 0,0,0,0。数据表是使用 ViewState 创建的。我对这个问题进行的研究表明这应该有效。但是,从 DataTable 获得的值是 "" 。这段代码有什么不正确的?预先感谢您的意见、建议和考虑。代码如下:
数据表代码
private void CreateList()
{
DataTable dtMyList = new DataTable();
DataColumn dcID = new DataColumn("ID");
dtMyList.Columns.Add(dcID);
DataColumn dcColor = new DataColumn("Color");
dtMyList.Columns.Add(dcColor);
ViewState["MyList"] = dtMyList;
}
在旨在更改背景色的 RowDataBound 代码上
protected void grdMyList_RowDataBound(object sender, GridViewEventsArgs e)
{
DataTable dtMyList = (DataTable)ViewState["MyList"];
for (int i = 0; i < dtMyList.Rows.Count; i++)
{
e.Row.Cells[0].BackColor = System.Drawing.Color.FromName(Convert.ToString(dtMyList.Rows[0]["Color"]));
}
}