itemdatabound小结

类别:Asp 点击:0 评论:0 推荐:
在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/it8190.htm