ASP.NET/Jax التحكم مخصص القالب، تظهر / مختبئة العناصر مع العنصر النائب

StackOverflow https://stackoverflow.com/questions/1706705

سؤال

لدي عنصر تحكم مخصص في القسم (شريط الأدوات) يحتوي على AuterControl (زر) مخصص (زر) يستخدم الزر JQuery To Style وإدارة الولايات / postbacks / غير = postbacks إلخ.

يتم إخفاء عدد قليل من الأزرار مع عنصر نائب ويتم عرضه عند ضرب أحد الأزرار.

يبدو أن جميع الأزرار المرتبطة JQUERY يبدو أنها بدأت على عون البريد (AJAX Style داخل UpdatePanel باستخدام PageRequestManager) ومع ذلك فقد عرض ViewState على الأزرار التي تم إجراؤها غير مرئية بواسطة العنصر النائب.

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

أي تعليقات تجعلني أفكر في تقديرها.

يقع الرمز في أجزاء مختلفة وربما لا يستحق اللصق لأنه سيتم قطع اتصاله بالكامل (أعرف أن هذا لا يساعدك)

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

المحلول

أشعر أنني بحاجة للرد على سؤالي هنا:

بدلا من استخدام العناصر النائبة أو Divs مع CSS، يتم تقديم UpdatePanels إما في DIV أو SPAN اعتمادا على خيار التقديم. في هذه الحالة، قم فقط بإخفاء DIV أو SPOR أن UPADPANEL يخلق بدلا من محاولة إخفاء / إظهار حاوية خارجية جديدة.

نصائح أخرى

إذا كنت أتذكر بشكل صحيح، فإن عناصر تحكم ASP.NET لا تنهي دورة حياتها إذا كان لديهم مجموعة مرئية إلى False. بمعنى، لا يتم استدعاء أشياء مثل Render ()، ويجب أن تكون ViewState واحدة من هذه الأشياء (مما يجعل المنطقي). باستخدام لوحات التحديث مع AJAX / JavaScript هو أيضا شيء صعب حقا، ولا يعمل بشكل جيد للغاية. هذا هو مجرد كيفية ضوابط ASP.NET وحمل لوحة التحديث.

اقتراحي هو إما استخدام لوحات التحديث، أو استخدم JavaScript، وليس كلاهما.

يمكنك بسهولة محاكاة ما تفعله لوحات التحديث باستخدام jQuery $ .Post / الحصول على واستبدال قسم من التعليمات البرمجية مع إرجاع HTML من مكالمة خدمة ويب.

function myButtonClick(event){
    $.post("path/to/webservice", {data1: "data1"}, function(data, status){
        $("#myPanel").replaceWith(data);
    });
}

سيتم تشغيلك في النهاية إلى مشكلات أخرى أيضا إذا كان لديك JS متصلة برمز يتم تحديثها عبر لوحة التحديث. EX: إذا كان لديك قائمة بالعناصر التي تحتوي عليها كل منها JS معها، مثل أحد عناصر تحكم ASP.NET AJAX أدوات التحكم، وتحذف أحد هذه من هذه الصفحة باستخدام لوحة التحديث، فإن JS تستخدم لربط سوف يتحكم في up out of sync.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top