在DATAGRID中,如果要对某些记录进行格式化或者修饰,用到itemdatabound事件比较方便,
比如,要显示某人的存款金额已经少于某个数额了,要用红色来显示等。itemdatabound事件发生在
数据绑定到datagrid后,而其内容发送到客户端前。比如
private void OnItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// Check if the current row contains items; if it's
// a header or footer row that will throw an error
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
// Get a copy of the "dgLabel2" label that contains the
// "Balance" value
Label lblBalance = (Label)e.Item.FindControl("dgLabel2");
// Convert the value contained in the label to a double type
double dblBalance = Convert.ToDouble(lblBalance.Text);
// If that numeric value is negative
if(dblBalance < 0)
// ...display it in red
e.Item.Cells[3].ForeColor = System.Drawing.Color.Red;
// Get a copy of the "dgLabel1" label that contains the
// "Country" value
Label lblCountry = (Label)e.Item.FindControl("dgLabel1");
// ...convert it to a string
string strCountry = lblCountry.Text;
// If it's a North American country...
if(strCountry == "USA" ||
strCountry == "Mexico" ||
strCountry == "Canada")
{
// Get a copy of the "dgLabel0" label that contains the
// "CustomerID" value, we'll use it in the query string
// for the popup
Label lblID = (Label)e.Item.FindControl("dgLabel0");
// ...convert it to a string
string strID = lblID.Text;
// Replace the "Country" value displayed in the datagrid
// with "Jamaica", placed in a hyperlink who's OnClick
// event calls a javascript "popup" window
e.Item.Cells[2].Text = "<a href=\"popup.aspx?id=" + strID +
"\" onClick=\"popup(this.href); return false;\">Jamaica</a>";
}
}
}
而itemcreated事件和它有些不同,itemcreated发生在itemdatabound事件前,当datagrid中的每一项创建了但没
有数据时,所以不能用itemcreated事件来修改或者读取数据
本文地址:http://com.8s8s.com/it/it8186.htm