ديناميكية صف الجدول لم يتم تحديثه عن طريق مسج اياكس الاتصال

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

سؤال

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

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

مشكلتي تكمن مع عندما كنت ترغب في تغيير شكل القيم ضمن المضافة حديثا مسج صف الجدول.عند حفظ الضغط على زر فقط أي من بنيت بالفعل جدول الصف سيتم إعادة حفظها.ديناميكية صف بيانات النموذج لا لا حفظ.التحديث استدعاء يستخدم مسج اياكس ، ASP.NET نموذج MVC ملزمة.على "إضافة" أنا إعادة asp.net mvc "إطلالة جزئية" إلى مسج اياكس الاستجابة يتم إضافته إلى الشبكة إدراج جدول باستخدام $("#tablename tr:last").after(result).

ما يجب استخلاصه هو بالفعل كما قال الجديدة بشكل حيوي إضافة صف لا يتم تحديث.لدي IList<Item> مجموعة عاد في نموذج MVC ملزمة قائمة إلى وحدة تحكم طريقة عمل الذي يحتوي على قائمة كاملة من البنود ، ناقص حديثا مسج ديناميكية-إضافة حقل نموذج الصفوف.هذه هي المشكلة ولماذا عند إجراء تحديث الصفحة ، الصفوف مرة أخرى إلى الأصلي شكل قيم دخلت على الأولية إضافة.

أي أفكار لماذا IList<Item>'s لا تشمل هذه حيوي وأضاف الصفوف ؟ تفتيش في الحرائق أنها تستخدم نفس تسمية الدير في اسم السمة كل شيء يجب أن يكون على ما يرام.

غراهام.

تحديث 1 مايو 11:00 GMT+10:أنا لا تتلقى القيم عند تغيير نموذج الربط من IList إلى FormCollection.أنا لا أريد أن استخدام FormCollection بدلا من نموذج ملزمة ، ولكنه يطرح السؤال اذا كان يمكنني الحصول عليها بشكل صحيح من خلال FormCol ، لماذا لا IList نموذج الموثق ؟ لدي مقارنة مجموعة دخول العامل في هذا البند ، وأنها تناسب كل نفس المعايير والقيم.

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

المحلول

أنا لست مبرمج ASP, ولكن أنا لا هيك الكثير من مسج العمل.إذا فهمت مشكلتك بشكل صحيح ، ديناميكيا الصفوف غير ملزمة رد الوظائف التي سوف تؤدي بك عمليات التحديث.

يمكنك ربط ديناميكيا العناصر رد باستخدام إما مسج 'يعيش' وظيفة (كما Wikidkaka كنت أحاول أن أخبرك) أو يمكنك ربط حديثا العناصر يدويا في وظيفة رد الاتصال التي أطلقت عندما اياكس الاتصال العوائد.

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

لذلك التغيير:

$('div.your-save-buttons').click(updateFunction);

إلى

$('div.your-save-buttons').live(updateFunction);

نصائح أخرى

استخدام البرنامج المساعد livequery على ما كنت تحاول القيام به.يمكنك العثور عليها هنا - http://docs.jquery.com/Plugins/livequery

هذا لا يعمل على معظم حيوي إضافة عناصر:

$("select something").onSomeEvent("do something");

ولكن مع livequery البرنامج المساعد يمكنك أن تجعل من العمل الخاصة بك عن طريق تغيير شبيبة رمز إلى شيء مثل أدناه:

$("select something").livequery('event name','do something');

إذا كان العقار على النموذج الخاص بك قائمة من الأعداد الصحيحة ، يمكنك استخدام IEnumerable<int> للحصول على التلقائي نموذج ملزمة.هذا يعمل كل عمل الطريقة التي المعلمة هو IEnumerable<int> و طريقة عمل الذين المعلمة النموذج الذي يحتوي على خاصية وهي IEnumerable<int>.على سبيل المثال, مثل هذا:

<%= Html.Hidden("myField", 1) %>
<%= Html.Hidden("myField", 1) %>

و

public ActionResult Update(IEnumerable<int> myField) { }

أو

public ActionResult Update(MyModel myModel) { }
public class MyModel {
    public IEnumerable<int> myField { get; set; }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top