Problème pour trouver un contrôle au sein d'une FormView de code-behind
Ici le code derrière... je suis en train de récupérer cette commande afin que je puisse ajouter des éléments à la liste déroulante (je suis de récupérer le Rôle des Groupes à ajouter à la liste déroulante dans le code-behind)
Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim DDRoleGroups As DropDownList
DDRoleGroups = FormView1.FindControl("DDRoleGroup")
End Sub
Voici la FormView: (j'ai pris la plupart des domaines, afin d'en faciliter la lecture)
<asp:FormView ID="FormView1" runat="server" DataKeyNames="ID"
DataSourceID="ObjectDataSource_Vendors"
DefaultMode="Insert" BorderColor="DarkGray"
BorderStyle="Solid" BorderWidth="1px" CellPadding="4" Visible="False">
<EditItemTemplate>
</EditItemTemplate>
<InsertItemTemplate>
<label class="form_label">Role Group:</label><br /><asp:DropDownList ID="DDRoleGroup"
runat="server" Width="175px"
EnableViewState="False">
</asp:DropDownList>
</InsertItemTemplate>
</asp:FormView>
Pourrait-il avoir à faire avec le fait que c'est dans le Page_Load et sous le contrôle n'a pas encore chargé?
Merci,
Matt
OriginalL'auteur Matt | 2009-06-24
Vous devez vous connecter pour publier un commentaire.
Votre déroulante n'existe que dans le mode Insertion. Essayez de mettre en œuvre les formview est ModeChanged événement et d'en récupérer le contrôle si CurrentMode == Insérer:
Vous ne pouvez pas gérer cela dans Page_Load, tant que le formulaire n'a pas encore basculé en mode Insertion.
OriginalL'auteur devio
FindControl sur un formview ne fonctionnera que pour le modèle le FormView "CurrentMode" est affectée à la propriété.
Dans votre cas, vous ne pouvez le faire FindControl pour "DDRoleGroups" si votre FormView est réglé sur "Insérer", puisque c'est le modèle de votre contrôle.
Espère que ça aide.
Pas tout à fait. DefaultMode est ce que le formview retourne après tout insert/update/delete. CurrentMode représente ce mode de la FV est actuellement. Je n'ai pas vu que vous aviez mis votre DefaultMode déjà. Si elle est définie, pour Insérer et que vous avez vérifié qu'il est en effet lors de l'Insertion lors de Page_Load, puis quelque chose d'autre se passe.
Fait ce que vous avez suggéré, et même encapsulé la FindControl dans Si ViewForm1.CurrentMode.Equals("Insert) Puis. Il est allé bien à l'intérieur de la Si, donc je ne sais pas pourquoi il ne serait pas de travail...
Pouvez-vous essayer FormView.Ligne.FindControl("DDRoleGroup")?
Oh, et vous pourriez avoir besoin de le faire en pré-rendu()... vérifier ici: msdn.microsoft.com/en-us/library/...
OriginalL'auteur womp