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

عمل اب ديت ودليت لكل صف في الداتا قريد

مغلق
بدأه القيثاره في 5 مارس 2007 · 15 رد · 1,803 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيفكم جميعا

عندي استفسار وودي اعرف الحل لاني حاولت وبحثت في المنتدى

مالقيت شي يفيدني

انا عندي داتا قريد وفهذي الداتا قريد اعبيها من خلال الكود مو عن طريق ربطها بالسورس داتا كونيكشن

مشكلتي ابغى اسوي (بالكود) عمليه حذف وتعديل لكل صف

طبعا هالشي سهل لو كانت الداتا قريد مربوطه بالداتا سورس بس انا لا ابغى اسويها بالكود

اما بالنسبه لأكواد التعديل والحذف ماعندي اي مشكله فيهم لأني وجدت واستفدت خلال عمليه البحث المنتدى

اتمنى اجد الحل وجزيتم خيرا مقدما

#2

ولماذا تكتبها بيدك؟؟

ASP.NET توفر لك هذا الشيء بدون جهد أو عناء.......

My_Sign.jpg
#3

هلا اخوي إبراهيم دويكات

أعرف انها توفر لي هالشي بس المشكله ان الداتا قريد

عندي طريقه تعبيتها مسويتها بالكود لانه كل مره بتتغير

على حسب اليوزر عشان كذا فكرت اسوي الاب ديت والدليت بالكود واطلعهم في كل صف بالكود

بس ماعرفت

ياليت لو عندك فكره وتقدر تساعدني فيها اكون ممنونه لك وشاكره

والف شكر لحضورك ومساعدتك

#4

السلام عليكم اختي القيثارة ..

من خصائص DataGrid ضيفي Column للحذف و اخر لي تعديل و تحرير معاً .. ستلاحظي انها موجود في الخصائص

بعد ذلك اكتبي الكود امام كل حدث بمعنى . عند الغضط على زر حذف سيكون كود الحذف عند الحدث الخاص به كالتالي :

	Protected Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
اكتبي كود الحذف هنا و للوصول إلى الصف المطلوب استخدمي 
e.Item.ItemIndex
		  End Sub

لاحظي للوصول إلى رقم الصف استخدمي e.Item.ItemIndex

بالنسبة للتعديل و التحرير و زر إلغاء الامر سيكون كتالي :

	Protected Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
لإلغاء الامر
		Me.DataGrid1.EditItemIndex = -1
	End Sub

	Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
كود التحرير هنا 
		Me.DataGrid1.EditItemIndex = e.Item.ItemIndex
	End Sub

	Protected Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
		''
كود التعديل هنا 
		Me.DataGrid1.EditItemIndex = -1
		''
	End Sub

لاحظي ان قيمة EditItemIndex عند إلغاء الامر و بعد إجراء التعديل تصبح -1 اما عند التحرير فتساوي e.Item.ItemIndex

طريقة حماية الصفحة بالصورة العشاوائية Captcha

/index.php?showtopic=117870

#5

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

ألف ألف ألف شكر أخوي kabrs

بجد جزاك الله كل خير وماقصرت الله يجزاك الجنه:)

#6

هلا أخوي kabrs

معليش عندي سؤال وش تقصد بكود التحرير في الحدث:DataGrid1_EditCommand

ماني فاهمه عليك..؟

ياليت توضح لي

ومشكور على مساعدتك

#7

خلاص فهمت ايش تعملDataGrid1_EditCommand

:)

لاني مااحب اكتب شي الا ومقتنعه فيه:)

#8

السلام عليكم جميعا

معليش أخواني عندي استفسار اخر عن الداتا قريد

قرأت مقال للأخ محمد سعد العتيبي نقلها عن الأخ أحمد أبو دقة

بخصوص التعامل مع الداتا قريد واستفدت كثيرا لكن عندي سؤالين لو استطع الاجابه عليهم وهما

تكلم الاخ أحمد عن الحدثين ItemDataBound وItemCommand لكني لم أفهم مالمقصود بهما مع اني احس انهما مهمين جدا

اتمنى لو أحد يفيدني ومشكورين مقدما..

#9

ItemDataBound

هذا الحدث يتم تنفيذه بعد تعبئة DataGrid بالبيانات بمعنى بعد إسناد Source وربط البيانات DataBind

مثلاً : DataGrid تحتوي على 2 Columns و DataSource تحتوي على Column واحد من Dataset او DataTable

والمطلوب إدراج قيمة معينة او رقم تسلسلي في Coulmn الاخر بشكل تلقائي اثناء عرض البيانات يكون الكود كتالي

	Protected Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
		Me.DataGrid1.Items(e.Item.ItemIndex).Cells(1).Text = e.Item.ItemIndex + 1
	End Sub

بصيغة اخرى هذا الحدث يتم تنفيذه بعد اسناد البيانات لي DataGrid ويمر بجميع ال Items

ItemCommand

هذا الحدث يتم تنفيذه عند الضغط على اي Button في DataGrid قد يكون DropDownList او ImageButton ... الخ

كل العادة يمكن الوصل إلى Row من e.Item.ItemIndex

ويمكن الوصول إلى ال Button لنفس Row من خلال e.CommandName إن كانت موجودة مباشرة مثل ImageButton

او تحويل نوع ال Controls من خلال e.CommandSource واختبار ال ID مثلاً

مثال :

	Protected Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

		'في حالة معرفة   'CommandName
		Select Case e.CommandName
			Case Is = "LinkButton1"
				''اكتبي كود الحث هنا 
			Case Is = "ImageButton1"
				''اكتبي كود الحث هنا 
			Case Is = "Button"
				''اكتبي كود الحث هنا 
		End Select


		'في حالة معرفة   'COntrols.ID 
		Dim conrolsID As Control = e.CommandSource
		Select Case conrolsID.ID
			Case Is = "DropDownList"
				''اكتبي كود الحث هنا 
			Case Is = "CheckBox1"
				''اكتبي كود الحث هنا 
			Case Is = "FileUpload1"
				''اكتبي كود الحث هنا 
		End Select

	End Sub

طريقة حماية الصفحة بالصورة العشاوائية Captcha

/index.php?showtopic=117870

#10

]]]]008000"]

ألف شكر لك أخوي

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

بقى عندي سؤالين اتمنى يتسع صدرك لهما..

الأول..لما اجي اضغط على دليت أبغى أطلع كونفرميشن مسج حاولت اعملها بس عجزت ولقيت كود بالجافا سيكربت بس ماضبط:(

السؤال الثاني والأهم أني لما اضغط على Edit ودي أني يعمل اب ديت لبعض الفيلد وبعض الفيلد ابغاهم مايقدر يغير اليوزر عليه يعني

حالة الفيلد DisEnable

بس عجزت:(

[/align]

#11
اقتباس
الأول..لما اجي اضغط على دليت أبغى أطلع كونفرميشن مسج حاولت اعملها بس عجزت ولقيت كود بالجافا سيكربت بس ماضبط

الحمدلله قدرت احل هالمشكله

بس باقي مشكله الايديت:(

ياليت الاقي أحد يساعدني:)

#12

طيب ..

بانسبة للـ delete confurmation اتبعي الخطوات التالية :

1.انسخي الدالة التالية الى الكود عندك :

  Public Shared Sub ConfirmMsg(ByRef CurrentPage As System.Web.UI.Page, ByVal Msg As String, ByVal web_cntrol As WebControl)
		Dim sb As New System.Text.StringBuilder
		sb.Append("<script language=JavaScript>")
		sb.Append("function ConfirmDeletion()")
		sb.Append("{return confirm('" & Msg & "');}")
		sb.Append("</script>")

		CurrentPage.RegisterStartupScript("ConfirmDeletion", sb.ToString)

		web_cntrol.Attributes.Add("onClick", "return ConfirmDeletion();")

	End Sub

2. في الحدث ItemDataBound للداتا غريد ضيفي الكود التالي:

		If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.SelectedItem Then
			ConfirmMsg(Me, "تأكيد الحذف", e.Item.Cells(dg.Columns.Count - 1))
		End If

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

بالنسبة لمشكلة الاديت (( ولاني ما قرأت الموضوع كامل )) فاذا كنت تستخدمي TempleteColumn ممكن تغير التكست بوكس في خانة EditTemplete الى label

#13

هلا أخوي Scoool

بالنسبه لرساله الحذف قدرت اعملها مسج وانحلت

مشكلتها

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

بس ياليت احد يساعدني بالمشكله الثانيه:(

#14

اخي Scoool بارك الله فيك ... بصراحة كود Confirm رائع

القيثاره إن شاء الله هذا يحل مشكلتك الثانية

إذا كانت خاصية DataGrid1 .AutoGenerateColumns =True

بمعنى يتم إنشاء الاعمدة Columns بشكل تلقائي اكتبي الكود التالي للحقل المطلوب عند الحث DataGrid1.EditCommand

.DataGrid1.Items(e.Item.ItemIndex).Cells(?).Enabled = False

طبعا هذا للأعمدة التي تم إنشاء بشكل تلقائي

إذا قمتي بإدراج Columns في التصميم ضعي خاصية Read only = True

طبعاً هذي للأعمدة من نوع BoundColumn

مرفق صورة لذلك

اقتباس
بالنسبة لمشكلة الاديت (( ولاني ما قرأت الموضوع كامل )) فاذا كنت تستخدمي TempleteColumn ممكن تغير التكست بوكس في خانة EditTemplete الى label

او دعيها فارغة :rolleyes:

post-55305-1173809587_thumb.gif

طريقة حماية الصفحة بالصورة العشاوائية Captcha

/index.php?showtopic=117870

#15

هلا اخوي kabrs

معليش أخوي اعذرني ابدا مافهمت:( ولا فهمت طريقه أخوي Scoool في التمبلت:( لأني اساسا مااستخدمت التمبلت

بقولك ايش سويت انا عندي داتا قريد أضفت لها عمودين واحد للحذف والثاني للتعديل كما بالصوره1..طبعا انا ابغى اعمل ماسك على كل الاعمده

ماعدا الـNeeds ممكن يغير عليها اليوزر..

بعدين زي ماقلت عملت DataGrid1 .AutoGenerateColumns =True

بعد كذا اضفت للحدثDataGrid1.EditCommand الكود اللي قلت

.DataGrid1.Items(e.Item.ItemIndex).Cells(2).Enabled = False

بعدين رحت لخصائص الداتا قريد واضفت BoundColumn بس مافهمت يوم تقول الاعمده من نوع BoundColumn:(:(

بس للاسف ماضبط معي:( اتمنى ياربي تنحل مشكلتي يارب..والف شكر للي تعبتهم معا جميعا:)

post-94054-1173819725_thumb.jpg

post-94054-1173819795_thumb.jpg

#16

همممممممم -_- :

1. لاضافة Template Column استخدمي نفس الطريقة لدراج الداتا غريد وكل حاجة .. بس في شاشة dataGrid Properties خانة Columns مربع AvilableColumns تلقي آخر شي تحت TempleteColumn ،، ضيفيه للقائمة اللي عاليمين وبعدين غيري خانة Header Text لاسم الحقل ..

2. أوكي .. الان يحتاج انك تقفلي شاشة dataGrid Properties وتضغطي على الداتا غريد باليمين وتختاري Edit Template ثم العنصر اللي بدك تحرريه ..

3. طيب .. الآن راح تجيكي شاشة صغيرة عن الداتا غريد ،، ابحثي عن خانة EditItemTemplate وضيفي في نفس الخانه Label ..

4. لجد كده وكويس :rolleyes: : الآن يحتاج انك تعرفي اسم الـ Label وتبحثي عنه في صفحة Html وتضيفي هذا الكود لخاصية Text في :

Text='<%# DataBinder.Eval(Container.DataItem, "CourseID") %>'

(( طبعا لاحظي انك لازم تغيري اسم الحقل للحقل المناسب في الداتا بيس " Courseid")

5. تمام .. الآن انت عندك TemplateColumn يؤدي الغرض اللي تبيه .. وكزيادة خطوة انسخي نفس الـLable لخانة ItemTemplet في المرحلة 3

6. نصيحة مجرب (h) : انتقلي ل2005 راح تنزاح عنك هموم 2003

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…