2016-08-04 5 views
1

Ich bin in ASP.Net Webforms zu arbeiten, und ich habe ein Detail, die für seine letzte Vorlage, die Aktualisierung und Abbrechen Schaltflächen:Möchten Update-Button in einem Detail von externer Taste auslösen

<EditItemTemplate> 
    <asp:LinkButton ID="MyUpdateButton" CommandName="Update" Text="Update" runat="server"></asp:LinkButton> 
    <asp:LinkButton ID="MyCancelButton" CommandName="Cancel" Text="Cancel" CausesValidation="false" runat="server"></asp:LinkButton> 
</EditItemTemplate> 

Für Ästhetik, ich möchte diese Schaltflächen außerhalb der DetailsView verschieben. Dadurch verliere ich jedoch die Möglichkeit, den Handler OnItemUpdating auszulösen. Ich kann einen OnClick Handler zu den Tasten hinzufügen, aber dann verliere ich die DetailsViewUpdateEventArgs Daten, und es ruft nicht die Validatoren.

Also dachte ich, "warum nicht eine Taste außerhalb der DetailsView, die die .click() auf der Schaltfläche in der DetailsView ruft?". Also verdrahtete ich eine andere Taste, machte die aktuelle Update-Taste unsichtbar (über 'style="display: none;"') und setzte die OnClientClick für die externe Taste auf eine Funktion, die diese interne Taste findet und den .click() - Handler darauf aufruft. Ich habe diese Funktion getestet, und sie funktioniert so, wie sie sollte, indem sie den richtigen Knopf findet. Aber es löst immer noch nicht den OnItemUpdating Handler aus.

Irgendwelche Gedanken darüber, was ich falsch machen könnte? Oder ein besserer Weg, um diese Taste (innerhalb der DetailsView) von einer externen Taste auszulösen?

Antwort

0

Laut meinen Tests wird durch das Simulieren eines Klicks auf einen LinkButton kein Postback ausgelöst.

<asp:Button ID="MyUpdateButton" CommandName="Update" Text="Update" style="display: none;" runat="server" /> 
+0

Awesome, das sieht aus wie es es behob, dank: Sie sollten das versteckte Linkbutton durch einen versteckten Knopf ersetzen! – DukeBrymin

Verwandte Themen