كيفية استرداد قيمة تم تغييرها لمربع نص قاعدة البيانات داخل شبكة البيانات

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

  •  09-06-2019
  •  | 
  •  

سؤال

ASP.NET 1.1 - لدي DataGrid على صفحة ASPX مرتبطة بالبيانات وتعرض قيمة داخل مربع نص.يستطيع المستخدم تغيير هذه القيمة، ثم النقر فوق الزر حيث يتكرر الكود الموجود خلف كل DataGridItem في الشبكة، ويقوم بإجراء FindControl لمعرف مربع النص ثم يقوم بتعيين قيمة .Text لمتغير يتم استخدامه بعد ذلك لـ تحديث قاعدة البيانات.يتم ارتداد DataGrid بالقيم الجديدة.

المشكلة التي أواجهها هي أنه عند تعيين قيمة النص للمتغير، فإن القيمة التي يتم استردادها هي قيمة قاعدة البيانات الأصلية وليست قيمة المستخدم المدخلة حديثًا.هل هناك أي أفكار حول ما قد يسبب هذا السلوك؟

نموذج الكود:

foreach(DataGridItem dgi in exGrid.Items)
{
    TextBox Text1 = (TextBox)dgi.FindControl("TextID");
    string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
    // do stuff with the new value
}
هل كانت مفيدة؟

المحلول

إذن نموذج التعليمات البرمجية هو من حدث النقر على الزر الخاص بك؟

هل أنت متأكد من أنك لا تقوم بإعادة ربط مصدر البيانات الخاص بك عند إعادة النشر؟

نصائح أخرى

متى تحاول استرداد القيمة من TextBox؟أي.متى يتم تنفيذ نموذج التعليمات البرمجية الذي قدمته؟

إذا لم تكن قد قمت بذلك بالفعل، فستحتاج إلى إعداد أسلوب معالج للحدث ItemCommand الخاص بـ DataGrid.يجب أن تبحث عن قيمة TextBox الجديدة ضمن هذه الطريقة.يجب عليك أيضًا التأكد من عدم إعادة ربط DataGrid الخاص بك عند إعادة النشر.

أوصي أيضًا بشدة بقراءة سلسلة المقالات الممتازة التي كتبها سكوت ميتشل حول استخدام عنصر تحكم DataGrid وجميع وظائفه:http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

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