2009-10-13 6 views
0

My GridView utilise la syntaxe de liaison de données suivante pour lier les données. J'espère que la conversion de données avant qu'il ne soit vraiment lié à GridView. Par exemple, si la propriété int VendorID (j'utilise une liste comme source de données) est 0, je souhaite afficher une chaîne vide sur ce champ. Quel genre d'événement pourrais-je exploiter? Et si vous pouviez suggérer un échantillon de code?GridView: convertit les données avant bindind en GridView

Merci beaucoup.

 <asp:TemplateField HeaderText="Vendor ID"> 
      <ItemStyle Width="1%" BorderColor="#efefef" BorderWidth="1px" /> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="lblNo" Text='<%# Bind("VendorID") %>'></asp:Label> 
      </ItemTemplate> 
      <HeaderStyle BorderColor="#efefef" /> 
     </asp:TemplateField> 

Répondre

1

L'événement RowDataBound de Gridview peut être utilisé pour cela.

void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 

    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // do wat ever u like to do here. 
     // formating, checking, changing data, etc.... 

     e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>"; 

    } 

    } 
1

Salut, vous pouvez utiliser le code suivant dans RowDataboundEvent

if (DataBinder.Eval(args.Row.DataItem, "VendorID").ToString() == "0") 
    { 
     ((Label)args.Row.FindControl("lblNo")).Text = ""; 
    } 
    else 
    { 
     ((Label)args.Row.FindControl("lblNo")).Text = DataBinder.Eval(args.Row.DataItem, "VendorID").ToString(); 
    }