jeudi 4 février 2010

DataBinding en ASP.NET

Moi qui croyait en avoir terminé avec les développements Web, je m'y retrouve encore un petit peu... mais bon c'est franchement plus intéressant de produire une application Web en Asp.Net qu'avec un module ISAPI sous Windows.

Voici donc quelques sources d'information concernant le codage du data-binding en Asp.Net.
Fonction code-behind pour data binding.
Voici un exemple de fonction code-behind appelée depuis une colonne template (dans un DataGrid).
/// <summary>
/// CodeBehind function called from Quantity column DataBinding Expression
/// </summary>
/// <param name="o">System.Data.DataRowView obtained from Contained.DataItem</param>
/// <returns>The new quantity value to be displayed within an edit field</returns>
protected string ExtractNewQuantity( object o ){
     DataRowView drv = (DataRowView)o;
     DataRow row = drv.Row;
     return row["Mail"].ToString();
}

Appel de la fonction behind depuis la page Asp.Net
<asp:TemplateField HeaderText="New Quantity">
  <ItemTemplate>
    <asp:TextBox ID="TextBox2" runat="server" 
      Text="<%# ExtractNewQuantity(Container.DataItem) %>"></asp:TextBox>
  </ItemTemplate>
</asp:TemplateField> 

Autres exemples de binding expression sur un DataSource
A noter que Container.DataItem est un System.Data.DataRowView
<td>
  <a href="mailto://<%# Eval("Mail") %>">
    <asp:Label ID="LoginLabel" runat="server" Text='<%# Eval("Login") %>' />
  </a>
</td>
<td>
  <asp:Label ID="NomLabel" runat="server" Text='<%# DataBinder.Eval( Container.DataItem, "Nom") %>' />
</td> 

Aucun commentaire: