الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف احذف صف فى Gridview مصدرها استعلام

بدأه rabiemohamed في 2 أكتوبر 2010 · 12 رد · 989 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الاعزاء

لدى gridview تعرض كود الطلاب واسمائهم وقمت باضافة checkbox اريد ان يتم حذف الطلبة الذين تم اختيارهم علما بأن مصدر الــ gridview استعلام

سارفق ملف لتوضيح المطلوب

del.rar

#2

السلام عليكم ورحمة الله وبركاتة

اخي الكريم انا برفق لم رابط يوجد فيه طريقة لوضع checkbox في الـ Grid View وطريقة حدف العناصر المحددة

ملاحظة : المصدر يعتمد على مصدر لأسترجاع البيانات من قاعدة البيانات .

فأنت المطلوب منك تركز في المقال وتدبل بـ استعلامك ..

Adding a GridView Column of Checkboxes

والمرفق لا يوجد به شي اخي ؟؟

good luck

1

My Latest

Hello Entity Framework Code First

--------------------

#3
D a r K T o u c h كتب:

السلام عليكم ورحمة الله وبركاتة

اخي الكريم انا برفق لم رابط يوجد فيه طريقة لوضع checkbox في الـ Grid View وطريقة حدف العناصر المحددة

ملاحظة : المصدر يعتمد على مصدر لأسترجاع البيانات من قاعدة البيانات .

فأنت المطلوب منك تركز في المقال وتدبل بـ استعلامك ..

Adding a GridView Column of Checkboxes

والمرفق لا يوجد به شي اخي ؟؟

good luck

الاستعلام عندى الجريد فيو حيث ان الجريد فيو انشئتها بالمعالج وجعلت مصدرها استعلام يجيب بياناته من جدولين جدول المجموعة ومنه ياخد رقم الطالب ورقم المجموعة وجدول بيانات الطلبة ومنه ياخد اسم الطالب

والهدف هو معرفة اسم الطالب المراد حذفه

والمطلوب عندما احدد الطالب يتم حذفه من جدول المجموعة بناءاً على كود الطالب

جربت الطريقة المرفقة ولكنها لم تفلح

For Each row As GridViewRow In GridView1.rar

#4

السلام عليكم ورحمة الله وبركاتة

اخي الكريم انا حملت المرفق ولا اعلم لماذا لا يعمل لدي ؟؟

وبصراحة انا فاهم المطلوب فأطلب منك انك ترجع الى المصدر وتقرى على طول من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

1

My Latest

Hello Entity Framework Code First

--------------------

#5
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

ده الكود اللى انا كنت كاتبه وكانت بتظهر خطأ عند تعريف كود الطالب وانا واضع اسفله خط

#6

السلام عليكم ورحمة الله وبركاتة

اخي الكريم الحمد لله وصلنا لمرحلة وان شاء الله الحل قادم

اول شي اخي تأكد هل وضعت في خواص الـ 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

1

My Latest

Hello Entity Framework Code First

--------------------

#7
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

ان شاء الله تجد الحل بهذه الطريقة

وشكرا

اخى العزيز اشكرك على اهتمامك

وهجرب وارد عليك

#8

اخى العزيز انا الSqlDataSource2 مصدرها جملة select وليست حذف

انا وضعت جريد فيو تجيب من جدول المجموعات كود الطالب ورقم المجموعة ومن جدول الطلبة اسم الطالب ومن جدول الكليات اسم الكلية اصبح لدى الشكل التالى

كود الطالب - اسم الطالب - اسم الكلية- رقم المجموعة

وقمت باخفاء رقم المجموعة وجعلت يتم تحديد الطلبة بناءاً على dropdownlist بها ارقام المجموعات

ثم اضفت حقل unbound الى الجريد فيو ووضعت به checkbox لكى احدد الطالب المراد حذفه واريد ان يتم حذف الطالب من جدول المجموعات بناءا على كود الطالب الذى يتم عمل check له

عارف انى اتعبتك ولكن فعلا الموضوع ده معطلنى اكثر من 10 ايام ولم اصل لحل

أتمنى سعة صدرك

#9

السلام عليكم ورحمة الله وبركاتة

اخي الكريم انا فاهم شنو تقصد واخر رد كان ليي فيه الجواب

اقتباس
اخى العزيز انا ال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

والمثال في المرفقات ...

ون شاء الله تحل مشكلتك

GridViewWithCheckBoxWeb.rar

1

My Latest

Hello Entity Framework Code First

--------------------

#10
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

والمثال في المرفقات ...

ون شاء الله تحل مشكلتك

GridViewWithCheckBoxWeb.rar

اخى العزيز

عملت كل حاجة زى ما قلتلى

وما بينفذ شى مش بيدى Error بس ما فى شى بيتم

#11
اقتباس
اخى العزيز

عملت كل حاجة زى ما قلتلى

وما بينفذ شى مش بيدى Error بس ما فى شى بيتم

السلام عليكم روحمة الله وبركاتة

اخي حتى المثال الي اانا وضعتة ما ينفذ ؟

ركز في مثالي لان يعمل 100%

والي عملته في مثالي او قصدي التغيرات هي :

- التغير على الـ GridVIew بوضع الـ CheckBox

- غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة

- مثل ما شرحت لك اخي انك تأخد اسم الـ parameter حيث في مثالي انا وضعته كـ Comment ( اذهب الى الصفحة واختر SqlDataSource وانظر الى الكود تبعها )

- وبعدها تعمل الكود اخي

----------------------

انظر الى مثالي وتأكد من الفكرة ..

تحياتي

1

My Latest

Hello Entity Framework Code First

--------------------

#12
D a r K T o u c h كتب:

السلام عليكم روحمة الله وبركاتة

اخي حتى المثال الي اانا وضعتة ما ينفذ ؟

ركز في مثالي لان يعمل 100%

والي عملته في مثالي او قصدي التغيرات هي :

- التغير على الـ GridVIew بوضع الـ CheckBox

- غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة

- مثل ما شرحت لك اخي انك تأخد اسم الـ parameter حيث في مثالي انا وضعته كـ Comment ( اذهب الى الصفحة واختر SqlDataSource وانظر الى الكود تبعها )

- وبعدها تعمل الكود اخي

----------------------

انظر الى مثالي وتأكد من الفكرة ..

تحياتي

الاخ العزيز اشكرك على اهتمامك ولكن مثالك بالسى شارب وانا استخدم vb وهذا شى محلول

اما المشكلة

"غيرت في وضع الـ SqlDataSource حيث جعلتها تقبل الحدف والتعديل والاضافة"

ازاى اغير فى وضع SqlDataSource بحيث تقبل الاضافة والتعديل والحذف مع العلم ان مصدرها استعلام وليس جدول وده وضحته لحضرتك قبل كده

اتمنى سعة صدرك

#13
اقتباس
الاخ العزيز اشكرك على اهتمامك ولكن مثالك بالسى شارب وانا استخدم 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

1

My Latest

Hello Entity Framework Code First

--------------------

مواضيع مشابهة