لتحرير البيانات في عنصر التحكم DataGrid، الرجاء استخدام العمود "تحرير، تحديث، إلغاء" في "عمود الزر". ويمكن تعيين هذه العناصر كعنصر تحكم DataGrid في منشئ الخصائص لعنصر
التحكم DataGrid (خذ اسم عنصر التحكم dg1 كعنصر تحكم). على سبيل المثال )، سيكون هناك عمود آخر في عنصر التحكم dg1 بالصفحة. كل عنصر في هذا العمود عبارة عن زر/زر ارتباط يحتوي على النص "تحرير".
إذا قمت بالنقر فوق الزر "تحرير" الخاص بصف ما، فسيكون الصف في وضع التحرير، ويتم استبدال الزر "تحرير" بالزرين "تحديث" و"إلغاء"، وجميع الأعمدة المساعدة الأخرى للبيانات غير القابلة للقراءة فقط في سيكون الصف هو تغييره إلى تنسيق تحكم TextBox حتى يتمكن المستخدمون من تحريره وتعديله.
عندما يقوم المستخدم بتعديل بيانات عمود البيانات غير للقراءة فقط (في عنصر التحكم TextBox)، ينقر فوق الزر "تحديث"، ويحفظ القيمة الجديدة (عادةً في قاعدة البيانات)، وينقر فوق الزر "إلغاء"، ويخرج الصف وضع التحرير.
من أجل تحقيق تأثير التبديل إلى وضع تحرير الصف بالنقر فوق الزر "تحرير"، يجب كتابة طريقة التعامل مع حدث EditCommand لـ dg1. ومن أجل تحقيق تأثير حفظ القيمة الجديدة بالنقر فوق الزر "تحديث". يجب كتابة طريقة معالجة حدث UpdateCommand لـ dg1 للنقر فوق الزر "إلغاء" للخروج من وضع تحرير السطر، يجب عليك تحرير طريقة معالجة حدث CancelCommand لـ dg1
1) طريقة معالجة حدث dg1.EditCommand - أدخل تحرير السطر. وضع
-------------------------------------------------- ----
الفراغ الخاص dg1_EditCommand (مصدر الكائن، System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; // قم بتعيين فهرس العنصر المراد تحريره
binddg1(); // طريقة ربط البيانات بـ dg1. بعد تعيين العنصر المراد تحريره، فإنه يتطلب إعادة ربط dg1
}
-------------------------------------------------- -------
2) طريقة التعامل مع الحدث dg1.CancelCommand - الخروج من وضع تحرير الصف
-------------------------------------------------- -------
الفراغ الخاص dg_CancelCommand (مصدر الكائن، System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; // فهرس العنصر الذي تم تحريره هو -1، مما يعني عدم تحرير أي عنصر.
binddg1(); // بعد إعادة تعيين EditItemIndex، يلزم إعادة ربط dg1
}
-------------------------------------------------- -------
3) طريقة معالجة الحدث dg1.UpdateCommand - حفظ القيم المحدثة، يجب عليك أولاً الحصول على هذه القيم الجديدة من الصفحة. في طريقة معالجة الحدث، يجب تنفيذ ثلاث وظائف رئيسية:
احصل على القيم المحدثة، وقم بتحديث تلك القيم، واخرج من وضع تحديث الصف.
بشكل عام، يتم الحصول على البيانات المعروضة في عنصر تحكم DataGrid من جدول قاعدة البيانات، لذلك يجب أيضًا حفظ القيمة المحدثة في قاعدة البيانات. يمكنك استخدام عبارة Sql للتحديث أو إجراء مخزن لإجراء التحديث.
يتطلب الحصول على قيم الأعمدة من صفحة في صف واحد في وضع التحرير بعض الحيل. خذ أعمدة الربط كمثال:
احصل على قيمة عمود منضم للقراءة فقط: e.Item.Cells[column Index].Text // عمود التعليمات للقراءة فقط في حالة غير قابلة للتحرير احصل على قيمة عمود منضم غير للقراءة فقط: ((TextBox)(e.Item. Cells[Column Index].Controls[0])).Text // في حالة التحرير،
عادةً ما يكون عمود التعليمات للقراءة فقط هو عمود المفتاح الأساسي في الجدول المستخدمة في عبارة حيث من بيان التحديث بشكل عام، لا يتم تحديثها
.
-------------------------------------------------- --------
الفراغ الخاص DataGrid1_UpdateCommand(مصدر الكائن، System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
// عمود منضم للقراءة فقط، في حالة غير قابلة للتحرير
معرف سلسلة العملاء = e.Item.Cells[1].Text;
// عمود منضم غير قابل للقراءة فقط، في حالة التحرير
سلسلة اسم الشركة = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;
String strSql = "تحديث اسم الشركة المحدد للعملاء = '" + اسم الشركة +
"',city = '" + city + "' حيث معرف العميل = '" + معرف العميل + "'";
ExecuteSql(strSql); // تنفيذ بيان التحديث لتحديث
DataGrid1.EditItemIndex = -1; // الخروج من وضع تحرير الصف
binddg1();
}