Enquêter sur la nouvelle approche de reliure de modèle fortement typée de l'ASP.NET 4.5 WebForms:
in Exemple de Scott Hanselman de WebForms Modèle de liaison (parmi d'autres) J'ai vu l'utilisation d'un formulaire qui s'ouvre dans le mode" Modifier ", contenant un certain nombre de dynamiccontrols code> par exemple p >
<asp:FormView runat="server" ID="MyForm" ... DefaultMode="Edit">
<EditItemTemplate>
<asp:DynamicControl runat="server" ID="Field1" DataField="Field1" Mode="Edit" />
<asp:DynamicControl runat="server" ID="Field2" DataField="Field2" Mode="Edit" />
</EditItemTemplate>
</asp:FormView>
3 Réponses :
Il suffit de définir AUTOGENEREDITTBUTTON = "vrai". Tous les types d'entrée dans votre modèle d'élément seront alors modifiables. Vous devrez peut-être afficher / masquer la bordure des zones de texte et l'autre type d'entrée à l'aide de JQuery. p>
Non, vous n'avez pas à spécifier tous les 3 modèles. J'ai eu le même scénario et c'est ma solution:
dans le code derrière copier le modèle par exemple. EDITTETEMPLET Vous avez microcode à l'autre que vous avez besoin p>
protected void Page_Init() { var action = RouteData.Values["action"].ToString(); switch (action) { case "add": personForm.ChangeMode(FormViewMode.Insert); this.Page.Title += " Add"; break; case "edit": personForm.ChangeMode(FormViewMode.Edit); this.Page.Title += " Change"; break; default: personForm.ChangeMode(FormViewMode.ReadOnly); break; } // Reuse inserttemplate for editing if (personForm.CurrentMode == FormViewMode.Edit) { personForm.EditItemTemplate = personForm.InsertItemTemplate; } }
Contrairement à ce que beaucoup de gens croient, vous n'avez besoin que de one em> stry> Modèle dans un formulaire, l'EdiTeTemTemplate. ci-dessous est un exemple simple montrant comment le faire (avis que cela n'est pas connecté à l'idée de "données dynamiques".). P> De cette façon de le faire, le mode lisonly n'est jamais utilisé, et donc un élément téméraire n'est pas nécessaire. Et le formulaire utilisera l'éditionTemTemplate pour l'édition et l'insertion. p> De cette façon de le faire simplifie beaucoup le balisage, et lorsque vous avez des réglages à la disposition, il vous suffit de le faire dans un seul modèle. P> Notez que la sauvegarde -Button n'a pas de command nom. La commande est à la place déterminée dans l'événement FormView1_ItemCommand (voir code). P> remarquez également que le mode du formulaire est déterminé dans l'événement sqldatasource1_selecté (voir ce code, avec des commentaires). P> Je n'ai pas inclus le balisage de Sqldatasource1, car il n'y a rien de spécial que vous devez réfléchir à celui-là. Il suffit de le faire comme d'habitude. P>