J'ai créé mon premier UserControl asp.net que j'utiliserai à plusieurs endroits dans mon application. Il contient un formulaire pour afficher les champs de l'enregistrement dans un DataTable.Définir DataSource sur les contrôles dans asp.net UserControl?
Tout semble bien, sauf, je ne peux pas comprendre comment définir le DataSource sur le FormView qui est dans le UserControl. Je veux définir DataSource dans une méthode dans code-behind.
Je vois d'après intellisense que UserControl n'a pas de propriété DataSource, mais qu'il a une méthode DataBind. J'imagine que l'on peut avoir besoin de définir différentes DataSources sur plusieurs contrôles dans un UserControl, donc il doit y avoir une méthode pour percer dans un UserControl, mais je ne peux pas le comprendre.
Voici le code ASPX:
<%@ Register src="Controls/JobDetail.ascx" tagname="JobDetail" tagprefix="uc1" %>
...
<uc1:JobDetail ID="UserControlJobDetail" runat="server" />
...
Voici la méthode qui tente de définir la source de données:
public void BindJobRecord(string SelectedJobNo)
{
UserControlJobDetail.DataSource = LMDataClass.GetJob(SelectedJobNo);
UserControlJobDetail.DataBind();
}
Et voici le UserControl:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="JobDetail.ascx.cs" Inherits="DwgDatabase.JobDetail" %>
<asp:FormView ID="fvJobDetail" runat="server" DataKeyNames="job_num">
<ItemTemplate>
<div style="float: left; border-width: 1px;" class="LabelStyle TextBoxStyle" >
<table>
<tr>
<td><asp:label runat="server" ID="lblJobNo" Text='Job No' /></td>
<td><asp:TextBox runat="server" ID="txtJobNo" Text='<%# Eval("job_num") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label2" Text='Customer' /></td>
<td><asp:TextBox runat="server" ID="txtCustNo" Text='<%# Eval("cust_num") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label3" Text='Quote No' /></td>
<td><asp:TextBox runat="server" ID="txtQuoteNo" Text='<%# DataBinder.Eval(Container.DataItem, "quote_no", "{0:00000;;.}") %>' /></td>
</tr>
<tr>
<td><asp:label runat="server" ID="Label4" Text='Po No.' /></td>
<td><asp:TextBox runat="server" ID="TextBox4" Text='<%# Eval("p_o_num") %>' /></td>
</tr>
</table>
</div>
</ItemTemplate>
</asp:FormView>
Parfait! Merci. – MattSlay