从数据库中检索后如何在绑定到gridview之前编辑列值?

时间:2010-11-16 06:00:07

标签: c# asp.net

我从数据库中检索了一组数据表后,我需要在绑定到gridview之前编辑rows值。 例如,从数据库中检索一组数据表。

例如:[userid],[userEmail] - > 1,james @ hotmail.com

我想将“james@hotmail.com”更改为“james”,然后将其绑定到gridview。 [userEmail]的每一行都将与邮件扩展名(@ hotmail.com)分开... 我该怎么办..?

2 个答案:

答案 0 :(得分:6)

这样的事情应该有效:

DataTable dt = getMyDataTable();
foreach (DataRow dr in dt.Rows)
{
     string email = Convert.ToString(dr["email"]);
     email = email.Substring(0, email.IndexOf('@'));
     dr["email"] = email;
}

答案 1 :(得分:2)

您需要点击GridView的DataBound事件并编辑userEmail值。

这样的事情:

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // format the email, provided cell 1 is email
        e.Row.Cells[1].Text = e.Row.Cells[1].Text.Substring(0, e.Row.Cells[1].Text.IndexOf("@"));
    }
}

在ASPX文件中:

<asp:gridview id="CustomersGridView" 
    datasourceid="CustomersSqlDataSource" 
    onrowdatabound="CustomersGridView_RowDataBound"
    runat="server">
</asp:gridview>

参考: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx