كيف يمكنني جعل onclientclick بعد الظهر باستخدام مسج مع asp.net

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

سؤال

أريد لإعادة لوحة التحديث إعادة النشر دون استخدام تحديث لوحة للقيام إعادة النشر.ما هو عامة طريقة لفعل هذا ؟

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

ماذا لدي ؟

لدي جدول مع جدول البيانات.عندما اضغط على td البند ككل العمود ، أريد أن أفعل تحديث قاعدة البيانات و أيضا تحديث gridview على الصفحة نفسها.Gridview تظهر حاليا النقر فوق العناصر في الجدول لأنه تم تحديث عبر "أسلوبنا".

أبحث عن عامة طريقة يمكنني استخدام الكثير من المتزامن postbacks دون تحديث لوحة.

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

المحلول

طريقة تجاوز سعة مكدس يعمل يختلف في اثنين من الطرق الهامة من CodeProject المادة.

  • تجاوز سعة المكدس هو جعل طلب اياكس ضد ASP.NET MVC تحكم العمل ، غير مستقل صفحة ASPX.قد نعتبر هذا MVC التماثلية من ASP.NET اياكس صفحة الأسلوب.في كلتا الحالتين, ASPX الطريقة سوف تتخلف من حيث الأداء.

  • تجاوز سعة المكدس هو طلب اياكس عوائد سلمان تسلسل النتيجة لا التعسفي عادي أو HTML.وهذا يجعل التعامل مع الأمر على جانب العميل أكثر توحيدا و عموما النظيف.

على سبيل المثال:عندما صوت على هذا السؤال حتى مدعوم الطلب إلى /أسئلة/171000/التصويت مع "voteTypeId" من 2 في نشر البيانات.

تحكم في التعامل مع طلب أضيف صوتي إلى طاولة في مكان ما ثم ردت هذه سلمان:

{"Success":true,"NewScore":1,"Message":"","LastVoteTypeId":2}

باستخدام هذه المعلومات ، هذا سكريبت يعتني تحديث العميل العرض:

var voteResult = function(jClicked, postId, data) {
  if (data.Success) {
    jClicked.parent().find("span.vote-count-post").text(data.NewScore);
    if (data.Message)
      showFadingNotification(jClicked, data.Message);
  }
  else {
    showNotification(jClicked, data.Message);
    reset(jClicked, jClicked);

    if (data.LastVoteTypeId) {
      selectPreviousVote(jClicked, data.LastVoteTypeId);
    }
  }
};

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

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

هذا مثال من فعل الشيء نفسه وجدت ، ولكن مع خدمات ويب (تعليقات على هذه الوظيفة أدى في الواقع إلى ما بعد وجدت):

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

نصائح أخرى

ويمكنك فقط استخدام مكالمة AJAX القياسية لتحقيق ذلك. إنشاء صفحة. aspx الذي يقوم بتحديث قاعدة البيانات في أسلوب Page_Load لها، ويعرض أي المعلومات المطلوبة (مثل قيمة DB الحالية بعد التحديث) كما XML. ثم إجراء مكالمة أجاكس إلى تلك الصفحة باستخدام مسج.

ويمكنك أيضا إرجاع جزء HTML (أي على GridView تحديث)، واستخدام مسج لإدراج HTML المحدثة إلى الصفحة الحالية.

وتحرير: يجب أن يكون نموذج 2 في هذه الصفحة قريبا جدا من ما تريد:
http://www.codeproject.com/KB/ajax/AjaxJQuerySample.aspx

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

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