سؤال

أواجه مشكلة غريبة.

لدي لاستخدام GetPostBackEventRefence لفرض إعادة النشر، ولكنه يعمل في المرة الأولى، بعد إعادة النشر الأولى، لا يتم عرض وظيفة .NET...أيه أفكار؟

هذا ما أفتقده بعد إعادة النشر:

<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
        theform = document.Main;
    }
    else {
        theform = document.forms["Main"];
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
}
// -->
</script>
هل كانت مفيدة؟

المحلول

أول شيء أود أن أنظر إليه هو ما إذا كان لديك أي عناصر تحكم لـ ASP (مثل زر الرابط، ومربعات التحرير والسرد، التي لا تنشئ عادةً إرسالًا ولكنها تتطلب إعادة النشر) معروضة على الصفحة.سيتم وضع الدالة __doPostback في الصفحة فقط إذا اعتقد ASP أن أحد عناصر التحكم الخاصة بك يتطلب ذلك.

إذا كنت لا تستخدم أحد هذه الأشياء، يمكنك استخدام:

Page.ClientScript.GetPostBackClientHyperlink(controlName, "")

لإضافة الوظيفة إلى صفحتك

نصائح أخرى

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

this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top