J'ai un formulaire qui contient plusieurs zones de texte à l'intérieur de tr/td. J'essaie d'obtenir les zones de texte en utilisant la méthode .FindControl, mais il revient null. Le FormView est toujours en mode Edit (donc je suis toujours dans le EditItemTemplate) et j'essaye de charger les valeurs de la chaîne querystring dans les zones de texte provenant de la page précédente, donc j'ai besoin de cela sur page_load. Je le fais sur GridViews tout le temps comme ceci:FormView.FindControl(): erreur de référence d'objet
txtFirstName = (TextBox)fvGeneralInfo.FindControl("txtFirstName");
ou comme ceci:
txtFirstName = (TextBox)fvGeneralInfo.FooterRow.FindControl("txtFirstName");
ou comme ceci:
txtFirstName = (TextBox)fvGeneralInfo.Rows.FindControl("txtFirstName");
Qu'est-ce qui se passe?
<asp:FormView ID="fvGeneralInfo" runat="server"
DataSourceID="objInstructorDetails"
OnItemCommand="fvGeneralInfo_ItemCommand"
OnItemUpdated="fvGeneralInfo_ItemUpdated"
DefaultMode="Edit"
DataKeyNames="InstructorID" >
<EditItemTemplate>
<table>
<tr>
<td colspan="2" class="Admin-SubHeading" style="padding-left:10px;">General Info:</td>
</tr>
<tr>
<td class="Admin-FieldLabel">ID:</td>
<td><asp:TextBox ID="txtInstructorId" runat="server" CssClass="Admin-Textbox" ReadOnly="true" Text='<%# Bind("InstructorID") %>' /></td>
</tr>
<tr>
<td class="Admin-FieldLabel">First Name:</td>
<td><asp:Textbox ID="txtFirstName" runat="server" CssClass="Admin-Textbox" Text='<%# Bind("FirstName") %>' /></td>
</tr>
</table>
</EditItemTemplate>
</asp:FormView>
Ne trouvez-vous l'une des réponses comme correctes? – abatishchev