Voici donc quelques sources d'information concernant le codage du data-binding en Asp.Net.
- What's the deal with Databinder.Eval and Container.DataItem?
- Adding template columns to DataGrid control
- DataGrid - Template field, Edit Field DataBinding to Expression (et binding vers une fonction code-behind!)
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:
Enregistrer un commentaire