2010-11-16 3 views
3

Après avoir récupéré un ensemble de données à partir de la base de données, j'ai besoin de modifier la valeur des lignes avant de se lier à la grille. par exemple, un ensemble de données est récupéré à partir de la base de données.comment modifier la valeur de colonne avant de se lier à gridview après avoir récupéré de la base de données?

par exemple: [ID utilisateur], [USEREMAIL] -> 1, [email protected]

je voudrais changer "[email protected]" à "James", puis le lier à gridview. Chaque ligne de [userEmail] sera séparée avec l'extension mail (@ hotmail.com) ... comment dois-je faire ..?

Répondre

6

Quelque chose comme cela devrait fonctionner:

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

Vous devez taper dans l'événement DataBound du GridView et modifiez la valeur USEREMAIL.

Quelque chose comme ceci:

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("@")); 
    } 
} 

Dans votre fichier ASPX:

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

Référence: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

Questions connexes