التوضيح بين معاني واستخدامات Value , index and datakey in C# asp.net
1- ا لقيمة Value
القيمة هي قيمة الشئ او ما يتم تخزينه داخل الشئ او داخل الاداة او الكلاس او المتغير
فقد نستخدم ال Value
في الكود في السي شارب مثلا
int x = 20;
return x;
في هذه الحالة سترجع بقيمة الاكس وهي رقم 20 اي انها قيمة .
المثال الثاني وهو الاهم عندما نستخدمها في ايجاد قيمة الاداة مثل اختيار الدروب داونليست او اختيار الجريدفيو .
وبالتالي سنختار مثلا
drowpDownList1.SelectedValue;
GriedView1.SelectedValue;
فكل ذلك يرجع بقيمة الاداة التي اختارها المستخدم وهي ترجع برقم مخزن ايضا داخل هذه الاداة مثل User_id
وهو حقل رقم المستخدم في جدول المستخدمين
2- رقم ترتيب العنصر Index
وهو يعني رقم ترتيب العنصر داخل اداة معينة مثلا لدي 3 اشخاص
هشام
علي
بكر
الثلاثة ترتيبهم كالاتي
هشام ترتيبه رقم 0
علي ترتيبه رقم 1
بكر ترتيبه رقم 2
حيث بدأت من الصفر ..فترتيب العد في البرمجة يبدأ من الصفر وليس من الرقم واحد
لذلك اذا كتابة الاتي
drowpDownList1.SelectedValue;
سترجع بقيمة الحقل من جدول المستخدمين المسجل في الجدول .
لكن اذا كتبت
drowpDownList1.SelectedIndex;;
فتعني رقم ترتيب ظهور العنصر داخل الدروب داون ليست فقد يكون ترتيبها رقم صفر اي اول اختيار يظهر عند الضغط علي الدروب داون ليست .
ولكن قيمتها من الجدول ستكون مثلا 10 وهذا فرق شاسع في الاختيار .
ونحن بصفة عامة مع الادوات نختار دائما قيمة العنصر وليس ترتيبه ولكن كان لابد علينا من التفرقة
بين رقم ترتيب العنصر index in asp.net
وبين القيمة الحقيقية للعنصر المختار Selected value
3- قيمة مفتاح الاساس DataKeyNames
وبواسطتها تستطيع الحصول علي قيمة مفتاح الاساس للجدول من داخل اداة معينة مثل الجريدفيو او الداتاليست
وتسمي في الجريدفيو باسم DataKeyNames
وتسمي في الاداة داتاليست باسم DataKeyField
وشروط الحصول علي DataKeyNames in asp.net
- ان يكون بالجدول مفتاح اساسي primary key
- ان تكتب هذه الخاصية بالجريدفيو وتساويها باسم الحقل في الجدول
-
حيث تكتب في خصائص الجريدفيو مثلا
<asp:GridView ID="GridView1" DataKeyNames="user_id">
وتستطيع بواسطتها ان تحصل علي قيمة الحقل عند تعديل الجريد فيو من داخل الكود وقد اخذنا ذلك في محاضرات التعديل علي الجريدفيو وادوات العرض .
فمثلا لكي اضع زر تعديل وعندما اختار صف واريد ان اعدله او احذفه
فلابد من معرفة مفتاح الاساس للعنصر الذي اقف عليه واريد تعديله فمثلا .
string user_ID = GridView1.DataKeys[row.RowIndex].Value;
يعني استرجع قيمة مفتاح الاساس لرقم الصف الذي اقف عليه بالماوس
وضغطت عليه لكي اعدله او احذفه ..
ثم يتم الحذف بسهولة او التعديل كما في شرح الجريدفيو ودوات العرض للفيجوال ستوديو .