سؤال

لدي قاعدة بيانات تخزن الأحداث فيها وصفحة بها كائن تقويم.عند عرض الأيام، فإنه يبحث في أحداث الأشهر وإذا كان هناك أي تطابق لليوم الحالي الذي يتم تقديمه، فإنه يقوم بإنشاء زر رابط لتمثيل الحدث في اليوم في التقويم وإضافته إلى تلك الخلية.أقوم بإضافة بعض جافا سكريبت إلى زر الرابط لتغيير window.location إلى صفحة لعرض تفاصيل الحدث التي تمرر EventID في سلسلة الاستعلام (حاولت تعيين عنوان URL التالي لزر الرابط الذي تم إنشاؤه حديثًا ولكنه لم يتسبب في إعادة النشر...لا حظ).أحتاج إلى تعيين متغير الجلسة أي.Session("EditMode") = "Edit" إذن ستعرف الصفحة الجديدة أن الهدف هو الحصول على معلومات حدث موجود بدلاً من الاستعداد لإنشاء حدث جديد؟أي اقتراحات؟

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

المحلول

يتم التحكم في VARS جلستك بواسطة الخادم ، وتشغيل JS جانب العميل ، وبالتالي لا يمكن تعديل VARS مباشرة.

تحتاج إلى تقديم طلبات الخادم باستخدام Post أو الحصول على Iframes وإخفاءها ، أو مكالمات XMLHTTPrequest () لإرسال بيانات من JS إلى الخادم ، ثم اطلب من رمز الخادم الخاص بك التعامل مع VARS.

قم بإضافة متغير سلسلة استعلام آخر يمكن للصفحة استخدامه لتشغيل الموجود مقابل الجديد.

نصائح أخرى

قم بإضافة متغير سلسلة استعلام آخر يمكن للصفحة استخدامه لتشغيل الموجود مقابل الجديد.

إذا كنت تستخدم شيئًا مثل Struts2، فمن الممكن أن يكون لديك متغير مخفي في ملف jsp

<s:hidden id="EditModeId" value="%{#session.EditMode}"/> 

وداخل جافا سكريبت ما عليك سوى الوصول إلى هذا المتغير

alert(document.getElementById('EditModeId').value);

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

<script>
function OpenWindow(eventId, editMode)
{
    var window = window.open("popup.aspx?eventId=" + eventId + "&editMode=" + editMode);
}
</script>

من جانب الخادم، تحتاج إلى إنشاء استدعاء لوظيفة OpenWindow.على سبيل المثال:

onclick="OpenWindow(eventId=" + row["eventId"].ToString() + "&editMode=" + editMode.ToString() + ");"

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

var page1 = document.getElementById("textbox").value; 
sessionStorage.setItem("page1content", page1);

في صفحة أخرى استخدم هذه القيمة كمتغير الجلسة

document.getElementById("textbox2").value=sessionStorage.getItem("page1content");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top