ASP.NET:اطلاق النار برمجيا حدث من جانب الخادم في النافذة.فتاحة مع جافا سكريبت
-
15-11-2019 - |
سؤال
لدي دروبدونليست التي تطلق قبالة بعض داتابيندينغ من جانب الخادم في الحدث أونسليكتديندكسشانجد.
<asp:DropDownList ID="ddlGroup" runat="server"
AutoPostBack="True" OnSelectedIndexChanged="SelectGroup" />
في مكان آخر من الصفحة ، تفتح بعض جافا سكريبت نافذة منبثقة.عندما يتم ملء المنبثقة وتقديمها ، أريد استخدام جافا سكريبت لاطلاق النار التي OnSelectedIndexChanged
حدث في الصفحة الافتتاحية.لقد وجدت بعض التعليمات البرمجية الأخرى التي تفعل شيئا مشابها:
if (window.opener != null ) {
var cf = window.opener.document.forms['aspnetForm'];
if (!cf) {
cf = window.opener.document.aspnetForm;
}
cf.__EVENTTARGET.value = "prAdded";
cf.__EVENTARGUMENT.value = "winClosed";
cf.submit();
}
وأعتقد أن هذا هو ما أبحث عنه ، ولكن لست متأكدا ما يجب أن تذهب في أجزاء إيفنتارجيت و إيفنتارغومنت ، أو حتى لو كنت بحاجة إلى تلك على الإطلاق.أريد أن أطلق النار على وجه التحديد OnSelectedIndexChanged
معالج الحدث ل ddlGroup
.هل هذا ممكن / عملي?
سؤال ثانوي:هل يمكنني تحديث الصفحة الرئيسية بعد تشغيل رمز من جانب الخادم في النافذة المنبثقة?
المحلول
إيه ، هل يمكن أن تفعل ذلك بهذه الطريقة ، ولكن أود فقط استخدام __دوبوستباك() بدلا من ذلك.أن يحدد _ _ إيفنتارجيت و _ _ إيفنتارجمنت إلى المعلمتين ، وعلى افتراض المعلمة الأولى هي ونيكيد من أوبداتبانيل ، يسبب فقط أن أوبداتبانيل لتحديث.
لذلك إما يمكنك إعداد الأشياء حتى تحديث أوبداتبانيل يفعل ما تريد أن يحدث ، أو يمكنك التحقق من تلك القيم على إعادة النشر -- Request.Form["__EVENTTARGET"]
...والذهاب من هناك.