لا يقوم إعادة النشر ASP.NET GridView بتعيين قيم عناصر التحكم المنشورة

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

  •  02-07-2019
  •  | 
  •  

سؤال

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

يحررعندما أصل إلى القيمة مثل ذلك

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

تم العثور على مربع النص، ولكن النص ليس هو إدخال المستخدم.

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

المحلول

هل قمت بإيقاف تشغيل ViewState؟هل قمت بإضافة عنصر تحكم برمجياً في القالب؟إذا كان الأمر كذلك، فهل قمت بإنشائها في المرحلة الصحيحة؟

نصائح أخرى

يجب أن تكون قادرًا على استخدام GridViewUpdateEventArgs لاسترداد القيمة المدخلة، على سبيل المثال:

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

لقد استخدمت بناء الجملة هذا من قبل وهو يعمل مثل السحر.

تم نقل ربط بيانات ما بعد الظهر إلى Page_Init

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