الاخوة الاعزاء
لدى gridview تعرض كود الطلاب واسمائهم وقمت باضافة checkbox اريد ان يتم حذف الطلبة الذين تم اختيارهم علما بأن مصدر الــ gridview استعلام
سارفق ملف لتوضيح المطلوب
السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا برفق لم رابط يوجد فيه طريقة لوضع checkbox في الـ Grid View وطريقة حدف العناصر المحددة
ملاحظة : المصدر يعتمد على مصدر لأسترجاع البيانات من قاعدة البيانات .
فأنت المطلوب منك تركز في المقال وتدبل بـ استعلامك ..
Adding a GridView Column of Checkboxes
والمرفق لا يوجد به شي اخي ؟؟
good luck
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا برفق لم رابط يوجد فيه طريقة لوضع checkbox في الـ Grid View وطريقة حدف العناصر المحددة
ملاحظة : المصدر يعتمد على مصدر لأسترجاع البيانات من قاعدة البيانات .
فأنت المطلوب منك تركز في المقال وتدبل بـ استعلامك ..
Adding a GridView Column of Checkboxes
والمرفق لا يوجد به شي اخي ؟؟
good luck
الاستعلام عندى الجريد فيو حيث ان الجريد فيو انشئتها بالمعالج وجعلت مصدرها استعلام يجيب بياناته من جدولين جدول المجموعة ومنه ياخد رقم الطالب ورقم المجموعة وجدول بيانات الطلبة ومنه ياخد اسم الطالب
والهدف هو معرفة اسم الطالب المراد حذفه
والمطلوب عندما احدد الطالب يتم حذفه من جدول المجموعة بناءاً على كود الطالب
جربت الطريقة المرفقة ولكنها لم تفلح
السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا حملت المرفق ولا اعلم لماذا لا يعمل لدي ؟؟
وبصراحة انا فاهم المطلوب فأطلب منك انك ترجع الى المصدر وتقرى على طول منStep 3
وانت على ما ذكرت ان ترجع البيانات على حسب رقم الطالب فلابد ان يكون لكل طالب رقم خاص او ما يسمى primary key
في اعتقادي الشخصي سوف يتم حدف الطالب على اساس هذا الرقم , صحيح !!
طبعا بعتمد على كود المصدر
في البداية انت راح تقول له
GridViewRow row in Products.Rows
تبدل Products الى اسم الـ grid view
هذا الجزء سهل من الكود
CheckBox cb = (CheckBox)row.FindControl("ProductSelector");فقط تكتب تبدل اسم ProductSelector الى اسم الـ checkbox الي وضعتها في الخطوة الثانيه من المقال
انت المطلوب منك في هذه الخطوة
int productID = Convert.ToInt32(Products.DataKeys[row.RowIndex].Value);
تجيب رقم الطالب الي تحاول تمسحة وبعدها تغير هذا الجزء من الكود
// "Delete" the row
DeleteResults.Text += string.Format( "This would have deleted ProductID {0}<br />", productID);الى جزء مسح الطالب ( اقصد الاستعلام )اعتمادا على رقمة الي جلبناه في الخطوة الي تاتي قبل هذه الخطوة
------------------------------------------
ان شاء الله وضحت الطريقة
بس عليك المحاولة واهم من المحاولة التركيز
تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 6 أكتوبر 2010 في 18:02
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا حملت المرفق ولا اعلم لماذا لا يعمل لدي ؟؟
وبصراحة انا فاهم المطلوب فأطلب منك انك ترجع الى المصدر وتقرى على طول منStep 3
وانت على ما ذكرت ان ترجع البيانات على حسب رقم الطالب فلابد ان يكون لكل طالب رقم خاص او ما يسمى primary key
في اعتقادي الشخصي سوف يتم حدف الطالب على اساس هذا الرقم , صحيح !!
طبعا بعتمد على كود المصدر
في البداية انت راح تقول له
GridViewRow row in Products.Rows
تبدل Products الى اسم الـ grid view
هذا الجزء سهل من الكود
CheckBox cb = (CheckBox)row.FindControl("ProductSelector");فقط تكتب تبدل اسم ProductSelector الى اسم الـ checkbox الي وضعتها في الخطوة الثانيه من المقال
انت المطلوب منك في هذه الخطوة
int productID = Convert.ToInt32(Products.DataKeys[row.RowIndex].Value);تجيب رقم الطالب الي تحاول تمسحة وبعدها تغير هذا الجزء من الكود
// "Delete" the row DeleteResults.Text += string.Format( "This would have deleted ProductID {0}<br />", productID);الى جزء مسح الطالب ( اقصد الاستعلام )اعتمادا على رقمة الي جلبناه في الخطوة الي تاتي قبل هذه الخطوة
------------------------------------------
ان شاء الله وضحت الطريقة
بس عليك المحاولة واهم من المحاولة التركيز
For Each row As GridViewRow In GridView1.Rows
'Dim ch As CheckBox = row.FindControl("checbox1")
Dim ch As CheckBox = CType(row.FindControl("checkbox1"), CheckBox)
If ch.Checked Then
Dim stuid As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value)
SqlDataSource2.DeleteParameters("stu_id").DefaultValue = stuid.ToString()
SqlDataSource2.Delete()
End If
Next
End Sub
ده الكود اللى انا كنت كاتبه وكانت بتظهر خطأ عند تعريف كود الطالب وانا واضع اسفله خط
السلام عليكم ورحمة الله وبركاتة
اخي الكريم الحمد لله وصلنا لمرحلة وان شاء الله الحل قادم
اول شي اخي تأكد هل وضعت في خواص الـ Grid VIew
DataKeyNames
راح يكون حقل الـ id الخاص بالطالب
والخطوة الثانيه اذهب الى SqlDataSource2 في الصفحة وقصدي صفحة التصميم
وامسح الـ delete parameter
وقبل ما تمسحة انظر هو الى اسم الـ parameter الي بيمسح على اساسة واعمل نسخ الى اسم هذا المتغير فقط
على سبيل المثال ( طبعا المثال خاص فيني )
<UpdateParameters>
<asp:Parameter Name="fname" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>هذا update parameter لو تلاحظ خاصية الـ Name هذا ما قصدتة قبل قليل انك تتعمل نسخ الى الاسم وبعدها تمسحة ( لا تنسى اخي في delete parameter لان المثالي الي وضعتة للتوضيح فقط )
بعدها ارجع الى الكود
وعدل على الكود
For Each row As GridViewRow In GridView1.Rows
Dim ch As CheckBox = CType(row.FindControl("checkbox1"), CheckBox)
If ch.Checked Then
Dim stuid As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value)
SqlDataSource2.DeleteParameters.Add("aa", stuid.ToString())
SqlDataSource2.Delete()
End If
Next
End Subحيث الفراغ aa تستبدلها بـ الاسم الي قلت لك تأخد اسمة وتحفظة عندك قبل مسح الـ parameter
ان شاء الله تجد الحل بهذه الطريقة
وشكرا
تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 6 أكتوبر 2010 في 22:13
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي الكريم الحمد لله وصلنا لمرحلة وان شاء الله الحل قادم
اول شي اخي تأكد هل وضعت في خواص الـ Grid VIew
DataKeyNames
راح يكون حقل الـ id الخاص بالطالب
والخطوة الثانيه اذهب الى SqlDataSource2 في الصفحة وقصدي صفحة التصميم
وامسح الـ delete parameter
وقبل ما تمسحة انظر هو الى اسم الـ parameter الي بيمسح على اساسة واعمل نسخ الى اسم هذا المتغير فقط
على سبيل المثال ( طبعا المثال خاص فيني )
<UpdateParameters> <asp:Parameter Name="fname" Type="String" /> <asp:Parameter Name="ID" Type="Int32" /> </UpdateParameters>هذا update parameter لو تلاحظ خاصية الـ Name هذا ما قصدتة قبل قليل انك تتعمل نسخ الى الاسم وبعدها تمسحة ( لا تنسى اخي في delete parameter لان المثالي الي وضعتة للتوضيح فقط )
بعدها ارجع الى الكود
وعدل على الكود
For Each row As GridViewRow In GridView1.Rows Dim ch As CheckBox = CType(row.FindControl("checkbox1"), CheckBox) If ch.Checked Then Dim stuid As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value) SqlDataSource2.DeleteParameters.Add("aa", stuid.ToString()) SqlDataSource2.Delete() End If Next End Subحيث الفراغ aa تستبدلها بـ الاسم الي قلت لك تأخد اسمة وتحفظة عندك قبل مسح الـ parameter
ان شاء الله تجد الحل بهذه الطريقة
وشكرا
اخى العزيز اشكرك على اهتمامك
وهجرب وارد عليك
اخى العزيز انا الSqlDataSource2 مصدرها جملة select وليست حذف
انا وضعت جريد فيو تجيب من جدول المجموعات كود الطالب ورقم المجموعة ومن جدول الطلبة اسم الطالب ومن جدول الكليات اسم الكلية اصبح لدى الشكل التالى
كود الطالب - اسم الطالب - اسم الكلية- رقم المجموعة
وقمت باخفاء رقم المجموعة وجعلت يتم تحديد الطلبة بناءاً على dropdownlist بها ارقام المجموعات
ثم اضفت حقل unbound الى الجريد فيو ووضعت به checkbox لكى احدد الطالب المراد حذفه واريد ان يتم حذف الطالب من جدول المجموعات بناءا على كود الطالب الذى يتم عمل check له
عارف انى اتعبتك ولكن فعلا الموضوع ده معطلنى اكثر من 10 ايام ولم اصل لحل
أتمنى سعة صدرك
السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا فاهم شنو تقصد واخر رد كان ليي فيه الجواب
اقتباساخى العزيز انا الSqlDataSource2 مصدرها جملة select وليست حذف
اخي اذا كنت تستخدم SqlDataSource تستطيع توليد الحدف وايضا الاضافة
ممممم
انا عملت مثال ان شاء الله يكون مطابق الى الفكرة الي انت طرحتها ..
واذا هذه الفكرة ,, انا عملت comment على الاجزاء الهامة الي احاول الفت انتباهك فيها ..
وطبعا انا ماعرف الكثير في لغة vb فعملت تحويل الى الكود بأستخدام موقع
هذا الكود :
For Each row As GridViewRow In GridView1.Rows
Dim ch As CheckBox = TryCast(row.FindControl("CheckBox1"), CheckBox)
If ch IsNot Nothing AndAlso ch.Checked Then
Dim SiD As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value)
SqlDataSource2.DeleteParameters.Add("StudID", SiD.ToString())
SqlDataSource2.Delete()
Else
Label1.Text = "لم تقم بأختيار اي طالب للحدف"
End If
Nextوالمثال في المرفقات ...
ون شاء الله تحل مشكلتك
D a r K T o u c h كتب:السلام عليكم ورحمة الله وبركاتة
اخي الكريم انا فاهم شنو تقصد واخر رد كان ليي فيه الجواب
اخي اذا كنت تستخدم SqlDataSource تستطيع توليد الحدف وايضا الاضافة
ممممم
انا عملت مثال ان شاء الله يكون مطابق الى الفكرة الي انت طرحتها ..
واذا هذه الفكرة ,, انا عملت comment على الاجزاء الهامة الي احاول الفت انتباهك فيها ..
وطبعا انا ماعرف الكثير في لغة vb فعملت تحويل الى الكود بأستخدام موقع
هذا الكود :
For Each row As GridViewRow In GridView1.Rows Dim ch As CheckBox = TryCast(row.FindControl("CheckBox1"), CheckBox) If ch IsNot Nothing AndAlso ch.Checked Then Dim SiD As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value) SqlDataSource2.DeleteParameters.Add("StudID", SiD.ToString()) SqlDataSource2.Delete() Else Label1.Text = "لم تقم بأختيار اي طالب للحدف" End If Nextوالمثال في المرفقات ...
ون شاء الله تحل مشكلتك
اخى العزيز
عملت كل حاجة زى ما قلتلى
وما بينفذ شى مش بيدى Error بس ما فى شى بيتم
اقتباساخى العزيزعملت كل حاجة زى ما قلتلى
وما بينفذ شى مش بيدى Error بس ما فى شى بيتم
السلام عليكم روحمة الله وبركاتة
اخي حتى المثال الي اانا وضعتة ما ينفذ ؟
ركز في مثالي لان يعمل 100%
والي عملته في مثالي او قصدي التغيرات هي :
- التغير على الـ GridVIew بوضع الـ CheckBox
- غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة
- مثل ما شرحت لك اخي انك تأخد اسم الـ parameter حيث في مثالي انا وضعته كـ Comment ( اذهب الى الصفحة واختر SqlDataSource وانظر الى الكود تبعها )
- وبعدها تعمل الكود اخي
----------------------
انظر الى مثالي وتأكد من الفكرة ..
تحياتي
D a r K T o u c h كتب:السلام عليكم روحمة الله وبركاتة
اخي حتى المثال الي اانا وضعتة ما ينفذ ؟
ركز في مثالي لان يعمل 100%
والي عملته في مثالي او قصدي التغيرات هي :
- التغير على الـ GridVIew بوضع الـ CheckBox
- غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة
- مثل ما شرحت لك اخي انك تأخد اسم الـ parameter حيث في مثالي انا وضعته كـ Comment ( اذهب الى الصفحة واختر SqlDataSource وانظر الى الكود تبعها )
- وبعدها تعمل الكود اخي
----------------------
انظر الى مثالي وتأكد من الفكرة ..
تحياتي
الاخ العزيز اشكرك على اهتمامك ولكن مثالك بالسى شارب وانا استخدم vb وهذا شى محلول
اما المشكلة
"غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة"
ازاى اغير فى وضع SqlDataSource بحيث تقبل الاضافة والتعديل والحذف مع العلم ان مصدرها استعلام وليس جدول وده وضحته لحضرتك قبل كده
اتمنى سعة صدرك
اقتباسالاخ العزيز اشكرك على اهتمامك ولكن مثالك بالسى شارب وانا استخدم vb وهذا شى محلولاما المشكلة
"غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة"
ازاى اغير فى وضع SqlDataSource بحيث تقبل الاضافة والتعديل والحذف مع العلم ان مصدرها استعلام وليس جدول وده وضحته لحضرتك قبل كده
اتمنى سعة صدرك
السلام عليكم رحمة الله وبركاتة
اخي الكريم لماذا تستخدم استعلام وتربطة بـ SqlDataSource ?
استخدم SqlDataSource افضل , مثل ماعملت في مثالي انا
لان في حالتك انت اخي الكريم بكتابتك الاستعلام برمجيا لا تستخدم SqlDataSource , بل تعمل الطريقة برمجيا
حيث انك تربط كود الاسترجاع الي خبرتني عنه في اول الموضوع وتربطة بـ GridView
وبعدها تعمل البقية لزر الحدف
وتستبدل
SqlDataSource2.DeleteParameters.Add("StudID", SiD.ToString())
SqlDataSource2.Delete()بالكود البرمجي الذي يحدف وخلاص
وانا في رأيي اخي تنظر الى مثالي وتطبق العملية كلها بأستخدام SqlDataSource
اقتباساتمنى سعة صدرك
لا تشيل اي هم اخي البال طويل والحمد لله , و بصراحة اقولها لك عند وصولي لمرحلة عدم قدرتي لأعطائك المطلوب راح اخبرك اخي ان هذا هو حدي
في النهائة اخي اتمنى انك تراجع مثالي وطبق مثلة بـ VB وراح تعرف انا شنو عملت واكيد بعدها بتعرف وين الخلل الي انت واقع فيه
وشكرا لك
تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 10 أكتوبر 2010 في 19:51