DataGrid1_ItemDataBound事件的相应过程中,有一下一段代码会反复出现
if (e.Item.Cells[10].Text == String.Empty || e.Item.Cells[10].Text.Equals(null) || e.Item.Cells[10].Text==" ")
{}
else
{
if (e.Item.Cells[10].Text.Substring(0,1)=="#")
{
e.Item.Cells[10].BackColor=Color.Blue;
}
else
{
dt=Convert.ToDateTime(e.Item.Cells[10].Text.ToString());
if (dt > DateTime.Today.Date) //未来
{
e.Item.Cells[10].BackColor = Color.LimeGreen;
e.Item.Cells[10].ForeColor = Color.White;
}
else //曾经
{
e.Item.Cells[10].BackColor = Color.Green;
e.Item.Cells[10].ForeColor = Color.Wheat;
}
}
}
[10]可能会从[10]到[18],我想应该用一段函数来实现.于是,构想了一个函数PaintColor(int i,object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//.....
}然后通过PaintColor(10);来调用.这时编译时出问题,"重载PaintColor方法未获取1参数"...请各位大侠帮助!!
if (e.Item.Cells[10].Text == String.Empty || e.Item.Cells[10].Text.Equals(null) || e.Item.Cells[10].Text==" ")
{}
else
{
if (e.Item.Cells[10].Text.Substring(0,1)=="#")
{
e.Item.Cells[10].BackColor=Color.Blue;
}
else
{
dt=Convert.ToDateTime(e.Item.Cells[10].Text.ToString());
if (dt > DateTime.Today.Date) //未来
{
e.Item.Cells[10].BackColor = Color.LimeGreen;
e.Item.Cells[10].ForeColor = Color.White;
}
else //曾经
{
e.Item.Cells[10].BackColor = Color.Green;
e.Item.Cells[10].ForeColor = Color.Wheat;
}
}
}
[10]可能会从[10]到[18],我想应该用一段函数来实现.于是,构想了一个函数PaintColor(int i,object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//.....
}然后通过PaintColor(10);来调用.这时编译时出问题,"重载PaintColor方法未获取1参数"...请各位大侠帮助!!
解决方案 »
- 有懂MapXtreme编程的吗?进来帮我看看问题。
- 关于ASP.NET 中Repeater控件怎么样调用DLL层的参数方法
- CascadingDropDown控件总是试验不成功!望高手不吝指导
- 请问asp.net如何实现根据选择的省份,动态的绑定城市的复选框?
- 想得到gridview的字段名称?请前辈指点!
- 怎么设置dropdownlist控件蓝色细边的样式
- 解决如下问题领分专用贴,原贴如下:请看,50分!
- asp.net 问题 急!!!
- 如何让DATAGRID某一行根据某列的值显示不同的背景?
- 关于access里存放大文本的问题
- 提高ASP.Net应用程序性能的十大方法
- 在ASP.NET使用javascript的一点小技巧
{
if (DataGrid1.Items[i].Cells[10].Text.Substring(0,1)=="#")
{
DataGrid1.Items[i].Cells[10].BackColor=Color.Blue;
}
else
{
dt=Convert.ToDateTime(DataGrid1.Items[i].Cells[10].Text.ToString());
if (dt > DateTime.Today.Date) //未来
{
DataGrid1.Items[i].Cells[10].BackColor = Color.LimeGreen;
DataGrid1.Items[i].Cells[10].ForeColor = Color.White;
}
else //曾经
{
DataGrid1.Items[i].Cells[10].BackColor = Color.Green;
DataGrid1.Items[i].Cells[10].ForeColor = Color.Wheat;
}
}
}
i应该是iItemIndex
10应该是iCellIndex
{
//.....
}
调用
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
for (int i = 0; i < e.Item.Cells.Count; i++)
{
PaintColor(i, e);
}
}
可能是我没描述清楚,PaintColor函数是要放在
DataGrid1_ItemDataBound事件中的,那似乎是一个循环,遍历了所有的row,因此不用指明是哪个item,只需指明cell即可.private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//------------各Column中cell涂色开始----------------------
PaintColor(4,?); if (e.Item.Cells[4].Text == String.Empty || e.Item.Cells[4].Text.Equals(null) || e.Item.Cells[4].Text==" ")
{}
else
{
dt=Convert.ToDateTime(e.Item.Cells[4].Text.ToString());
if (dt > DateTime.Today.Date) //未来
{
e.Item.Cells[4].BackColor = Color.LimeGreen;
e.Item.Cells[4].ForeColor = Color.White;
}
else //曾经
{
e.Item.Cells[4].BackColor = Color.Green;
e.Item.Cells[4].ForeColor = Color.Wheat;
}
}
PaintColor(5,?);
PaintColor(6,?);
PaintColor(7,?);
PaintColor(8,?);
}
}不知这条思路对不对
{
//.....
}
调用
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
for (int i = 0; i < e.Item.Cells.Count; i++)
{
PaintColor(i, e);
}
}