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