Vra

Ek volg die voorbeeld in Atlas: Die skep van 'n Bevestiging Gebruik die ModalPopup Uitgebreide 'n postback maak wanneer die OkButton in 'n ModalPopup word gebruik (dit maak gebruik van die ModalPopupExtender wat kom in ASP.NET Ajax beheer Toolkit), maar as ek kan sien, die Sys.WebForms.PostBackAction () is nie meer teenwoordig in ASP.NET AJAX (die voorbeeld is vir Atlas). Toe ek loop dit die "Microsoft JScript runtime error: Object verwag" fout boodskap bring, in die lyn in javascript waar ek skep die PostBackAction. Hoe kan ek hierdie werk in ASP.NET AJAX, of miskien is daar 'n ander manier om dit te doen? Dankie

Was dit nuttig?

Oplossing

Het jy al gedink oor die gebruik van die ConfirmButtonExtender ? Jy kry die modale "bling" deur die extender, en jy sal die PostBack verwerking jy nodig het.

Jy bedraad op die knoppie klik gebeurtenis as normaal vir verwerking, maar die Bevestig extender sal "onderskep" die verwerking en laat dinge om voort te gaan as die gebruiker die aksie bevestig.

Ander wenke

bediener kant gebeure hoef te werk met die ModalPopupExtender. Wat jy nodig het om te doen, is om 'n knoppie te skep met 'n vertoning styl stel soos geen ander. Toe het die eiendom TargetControlID van die ModalPopupExtender om die verborge knoppie ID.

<asp:Button ID="btnShowModal" runat="server" Text="Show" OnClick="btnShowModal_Click" />
<asp:Button ID="btnHidden" runat="server" Style="display: none" />
<ajaxControlToolkit:ModalPopupExtender ID="modalExtender" runat="server" 
    TargetControlID="btnHidden" PopupControlID="divId" />

In die OnClick hanteerder wys die modale:

modalExtender.Show();

In die hanteerder vir die beheer wat die modale (gewoonlik 'n knoppie) sluit verberg die modale:

modalExtender.Hide();

Ek is in staat om hierdie metode suksesvol gebruik vir die opstel van terug na die bediener om beheer te vul in my modale met inligting uit 'n databasis gedurende die postback. Werk soos 'n champ.

As ek die ModalPopupExtender reg onthou, dit het 'n OKControlID wat jy as jou knoppie ID stel.

Kan jy nie net jou knoppie toewys op "onclick" Clientside hanteerder dat 'n postback noem?

Byvoorbeeld, iets soos:

 myModalPopupExtender.OkButtonID = myOKButton.ID;
 string script = ClientScriptManager.GetPostBackEventReference(myOKButton, myOKButton.ID);

 myOKButton.Attributes.Add("onclick", script);

wysig : Dit lyk soos nog 'n moontlike oplossing hier

Jy kan 'n in-sigbare knoppie te plaas in die paneel en stel dit as OkButton. Voeg jou werklike knoppie in die paneel en voeg sy OnClick event handler. Sien kode hieronder:

<cc1:ModalPopupExtender 
TargetControlID="btnSubmit"
DropShadow="true"
OkControlID="btnOK"
CancelControlID="btnDecline"
PopupControlID="pnlTermsAndConditions"
BackgroundCssClass="popup"
ID="ModalPopupExtender1" 
runat="server">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlTermsAndConditions" runat="server">
<table width="500" cellpadding="6" cellspacing="0" border="0" bgcolor="white">
<tr>
    <td><b>Tables and Content</b></td>
</tr>
<tr>
    <td><asp:TextBox ID="TermsAndCondition" runat="server" TextMode="MultiLine" Rows="10" Columns="60">
    This is my terms and condoition
    </asp:TextBox></td>
</tr>
<tr>
    <td align="center">
    <asp:Button ID="btnAccept" runat="server" CssClass="btn" Text=" Accept " OnClick="btnAccept_Click" />&nbsp;&nbsp;
    <asp:Button ID="btnDecline" runat="server" CssClass="btn" Text=" Decline " />
    <asp:Button ID="btnOK" style="display:none;visible:false;" runat="server" CssClass="btn" Text=" OK " />
    </td>
</tr>
</table>
</asp:Panel>

Dit is die oplossing Ek is op soek na. Groot post. Terloops, dit is nie nodige na die spot OK knoppie te skep. Net sluit nie die opsionele OKbutton prameter in die Modale Popup Uitbreiding definisie.

Miskien net die toevoeging van 'n bediener kant OnClick event om die knoppie? Dit moet plaas die hele vorm terug. Of jy kan die belangrikste vorm van html te kry ($ vind ( 'myFormName') of iets) en doen 'n .submit () op dit.

scroll top