سؤال

وأنا اتبع سبيل المثال في أطلس: إنشاء تأكيد عن طريق وModalPopup موسع لجعل إعادة النشر عند النقر فوق OkButton في ModalPopup (يستخدم ModalPopupExtender التي تأتي في ASP.NET اياكس أدوات التحكم)، ولكن ما أستطيع أن أرى، وSys.WebForms.PostBackAction () لا لم تعد موجودة في ASP.NET AJAX (على سبيل المثال هو أطلس). عندما كنت تشغيله على "خطأ وقت التشغيل مايكروسوفت ل JScript: كائن المتوقع" تثير رسالة الخطأ، في خط في جافا سكريبت حيث أنا خلق PostBackAction. كيف يمكنني أن أجعل هذا يعمل في ASP.NET AJAX، أو ربما، وهناك طريقة أخرى للقيام بذلك؟ بفضل

هل كانت مفيدة؟

المحلول

هل فكرت باستخدام ConfirmButtonExtender ؟ يمكنك الحصول على مشروط "بلينغ" من خلال الموسع، وسيكون لديك معالجة إعادة النشر التي تحتاج إليها.

وأنت سلك الحدث انقر على زر كالمعتاد للمعالجة، ولكن الموسع تأكيد سوف "اعتراض" تجهيز والسماح أشياء لمواصلة إذا كان المستخدم يؤكد العمل.

نصائح أخرى

لا تعمل

والأحداث الجانبية Server مع ModalPopupExtender. ما عليك القيام به هو خلق زر مع نمط العرض المتوقع أن لا شيء. ثم قم بتعيين الخاصية TargetControlID من ModalPopupExtender إلى معرف زر مخفي.

<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" />

في معالج عند_النقر عرض مشروط:

modalExtender.Show();

في معالج لعنصر التحكم الذي سيتم إغلاق مشروط (عادة زر) إخفاء مشروط:

modalExtender.Hide();

وأنا قادرة على استخدام هذه الطريقة بنجاح لنشرها مرة أخرى إلى الخادم من أجل تجميع عناصر التحكم في بلدي مشروط مع معلومات من قاعدة البيانات أثناء إعادة النشر. يعمل مثل بطل.

إذا أتذكر ModalPopupExtender بشكل صحيح، ولديه OKControlID التي تقوم بتعيينها كما ID الزر الخاص بك.

هل يمكنك ليس فقط تعيين الزر الخاص بك على "عند _ النقر" معالج clientside الذي يستدعي إعادة النشر؟

وعلى سبيل المثال، شيء من هذا القبيل:

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

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

تعديل : ليبدو وكأنه حل آخر محتمل هنا

ويمكنك وضع زر في واضحة في لوحة وتعيينه OkButton. إضافة زر الفعلي في لوحة وإضافة معالج الحدث OnClick لها. انظر الرمز أدناه:

<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>

وهذا هو الحل لقد كنت تبحث عنه. ملصق ممتاز. وبالمناسبة، فإنه ليس من الضروره لإنشاء زر موافق وهمية. فقط لا تشمل prameter OKbutton اختياري في تعريف مشروط المنبثقة التمديد.

وربما مجرد إضافة الحدث OnClick جانب الخادم إلى الزر؟ وهذا ينبغي الرد على استعادة شكل كامل. أو هل يمكن الحصول على النموذج الرئيسي من أتش تي أم أل ($ تجد ( 'myFormName') أو شيء) والقيام .submit () على ذلك.

scroll top