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

حساب عمود فى DataGrid

مغلق
بدأه HosamDahb في 4 ديسمبر 2003 · 18 رد · 5,379 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لوسمحتم انا استخدم Datagrid وباختصار عندى ثلاث أعمدة مثلا سعر الوحدة والكمية والقيمة فكيف أجعل العمود الخاص بالقيمة للقراءة فقط ويتم حساب المعادلة التالية فيه تلقائيا بمجرد التغير فى السعر أو العدد ^^القيمة =السعر * العدد

#2

Datagrid مجرد وسيلة عرض لهيك ما بعتقد تغير القيمة مباشرة. الطريقة المثلى (أنا جربتها كتير و نجحت دايما ) هم عن طريق اضافة عامود DataColumn الى مصدر البيانات DataTable مثلا , وجعل قيمة Expression المعادلة الازمة. مثلا

myDataColumn.Expression= "Prise * Quanity";

و لجعل العامود للقراءى فقط , فبتقدر تستخدم خاصة ReadOnly لل DataGridColumnStyle

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

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

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#3

يا جماعة عندي سؤال لو سمحتو إضافة إلى ؤسال الأخ HosamDahb، وهو كيف يمكن معرفة رقم العمود ورقم الصف عند النقر بالماوس على خلية من الخلايا في شبكة البيانات datagrid.

وجزاكم الله خير..

#4
myDataGrid.CurrentCell.RowNumber
myDataGrid.CurrentCell.ColumnNumber

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

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

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#5

جزاك الله خير يا DotNetExpert وجعل ذلك في ميزان حسناتك.. فعلاً بصراحة أنا محترف على vb6 لكن الدوت نت عندي مشاكل كثيرة معاه.. ومن ضمنها تلك المشكلة وانحلت..

لكن معلش عندي سؤال ثاني في نفس الموضوع تقريبا وهو عند النقر على الخلية نفسها فإن حدث dublclick لا يستجيب إلا إذا نقرت على العناوين في الأعلى أو على مساحة من الشبكة لا تحوي خلايا.. فكيف ذلك إذا ممكن ولك جزيل الشكر..

#6

إن هذا طبيعي!

ان كنت تريد معرفة متى تتغير الخلية الحالية عليك استخدام الحدث

CurrentCellChanged

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

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

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#7

جزاك الله خير

معليش أنا ثقلت في الأسئلة..

القصد، هل يمكن استعمال الحدث dublclick على أساس النقر على خلية من الخلايا فيتم قراءة بيانات الخلية نفسها التي تم النقر عليها، مثلاً لإظهار تفاصيل عن البند الذي تم النقر عليه.

وسؤال آخر هل هناك طريقة لعرض البيانات في فيجول بيسك دوت نت عوضاً عن DataGrid مثل أداة MSFleixGrid في vb6.

#8

ضمن الحدث CurrentCellChanged اكتب الكود التالي تستطيع الحصول على العنصر الحالي بالشكل :

maDataDrid(myDataGrid.CurrentCell.RowNumber,myDataGrid.CurrentCell.ColumnNumber).ToString()

بالنسبة ل MSFleixGrid فلسي لدي فكرة عنها

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

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

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#9

هناك الحدث YourDataGrid_ItemCommand(sender as object, e as DataGridCommandEvents)

يتحقق عند النقر على إحدى العناصر الموجودة في الـ DataGrid

#10

مثال:

لو أنك نقرت على Button في إحدى خلايا الـ DataGrid فكيف تعرف النص المكتوب على هذا الزر :

sub dg_ItemCommand(sender as object, e as DataGridCommandEvents)

 dim b as Button = CType(e.CommandSource, Button)
textbox1.Text = b.Text

End Sub
#11

يا إخوان أشكركم على تجاوبكم معي، وسؤالي هو كيف يمكنني إذا طلب المستخدم مثلاً تفاصيل عن بند من البنود المعروضة على datagrid فإن عليه أن ينقر مرتين بالماوس على الصف الذي يطلب التفاصيل عنه، فيقوم الحدث click بقراءة البيانات على الصف الذي تم النقر عليه..

وآسف مالي غير الله ثم أنتم.

شكر للأخ DotNetExpert

وأيضاً شكر ismaeel وجزى الله الجميع الخير

#12

سأفترض أنك تريد عرض معلومات عن شخص عُرض اسمه فقط في الـ DataGrid:

استخدم LinkButton ضمن الـ DataGrid وأعطه الخصائص التالية:

LinkButton1.Text = "Person Text"
LinkButton1.CommandArgument = "Person ID"

ثم استخدم خاصية الـ ItemCommand التي كتبتها في رد سابق

أرجو أن أكون أصبت فيما تريد

#13

الأخ ismaeel أولاً جزاك الله خير

ثانياً بالنسبة الكود الذي كتبته يبدوا عليه جيد لكن أريد أن أعرف أين أجد للأداة LinkButton ربما حللت المشكلة بالطريقة التي أعطيتني إياها.. يعني أحتاج قليل من التفصيل..

وأدعو الله أن يجزيك الخير..

#14

الأداة LinkButton هي إحدى أدوات الـ ASP.NET مثل DataGrid و HyperLink, فقط اكتب في المحرر الخاص بالـ .NET <ASP:LinkBut واضغط Ctrl+Space وسوف تظهر لك جميع عناصر الـ .NET تقريباً

#15

الأخ ismaeel أولاً أشكرك جداً على تواصلك معي..

لكن بالنسبة لكلامك ربما فهمت منك أن أفتح مشروع ASP.NET وأنقل الأداة منه أم ماذا.. أرجو الإيضاح..

ما عليك أنا ترى توي داش على .NET برغم أني لدي خبرة في الإصدارات السابقة من فيجول بيسك

#17

أشكرك جداً وأنا بانتظارك إن شاء الله

#18

إن الموضوع ليس بهذا التعقيد ان كان كل ما تريده هو عرض خلية(أو أكثر) من الجدول مقابلة للسجل الحالي ضمن DataGrid . كما أن استخدام الأحداث هو غير ضروري .

كل ما عليك فعله بعد تصميم الجدول وربطه بقاعدة بينات ضمن DataSet (مثلا!!)

هو أن تضيف العناصر التي تريد عرض المعلومات الاضافية بداخلها ( TextBox مثلا) وربط هذه العناصر بالحقل الناسب ضمن نفس الجدول

كمثال

textBox1.DataBindings.Add(new Binding("Text",myDataSet, "Kunden.Name"))

حيث البارامتر الأول (هنا Text ) هو اسم الخاصية التي تريد ان تربط الجدول بها (في العادة هي دائما Text)

البارامتر الثاني هو اسم المصدر البيانات (هنا هو DataSet ولكنه من الممكن أن يكون أيضا DataTable )

البارامتر الثالث هو مزيح من اسم ال DataTable ضمن ال DataSet مفصولا بنقطة عم اسم الحقل . في حال كان المصد هو DataTable وليس DataSet فيكتفي هنا فقط باسم الحقل.

أعتقد أن هذا كل ما تحتاجة لعمل الشي الذي اشرت اليه

ملاحظة: في حال وجود أسئلة أرجو أن تسالها اليوم فأنا مسافر غدا في اجازة لمدة اسبوعين ولن يكون بامكاني الاجابة عنها.

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

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

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#19

أرجو مساعدتي فأنا قد فعلت ما قلتم عنه ووضعت

myDataColumn.Expression= "Prise * Quanity";

وقد ضبط ولكني اريد أن يتم حفظ نتيجة الضرب بداخل حقل موجود في قاعدة البيانات فكيف ذلك أرجوا افادتي وشكرا

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

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