السلام عليكم
لوسمحتم انا استخدم Datagrid وباختصار عندى ثلاث أعمدة مثلا سعر الوحدة والكمية والقيمة فكيف أجعل العمود الخاص بالقيمة للقراءة فقط ويتم حساب المعادلة التالية فيه تلقائيا بمجرد التغير فى السعر أو العدد ^^القيمة =السعر * العدد
السلام عليكم
لوسمحتم انا استخدم Datagrid وباختصار عندى ثلاث أعمدة مثلا سعر الوحدة والكمية والقيمة فكيف أجعل العمود الخاص بالقيمة للقراءة فقط ويتم حساب المعادلة التالية فيه تلقائيا بمجرد التغير فى السعر أو العدد ^^القيمة =السعر * العدد
Datagrid مجرد وسيلة عرض لهيك ما بعتقد تغير القيمة مباشرة. الطريقة المثلى (أنا جربتها كتير و نجحت دايما ) هم عن طريق اضافة عامود DataColumn الى مصدر البيانات DataTable مثلا , وجعل قيمة Expression المعادلة الازمة. مثلا
myDataColumn.Expression= "Prise * Quanity";
و لجعل العامود للقراءى فقط , فبتقدر تستخدم خاصة ReadOnly لل DataGridColumnStyle
وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان
بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي
يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي
برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي
يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو
http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3
يا جماعة عندي سؤال لو سمحتو إضافة إلى ؤسال الأخ HosamDahb، وهو كيف يمكن معرفة رقم العمود ورقم الصف عند النقر بالماوس على خلية من الخلايا في شبكة البيانات datagrid.
وجزاكم الله خير..
myDataGrid.CurrentCell.RowNumber myDataGrid.CurrentCell.ColumnNumber
وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان
بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي
يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي
برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي
يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو
http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3
جزاك الله خير يا DotNetExpert وجعل ذلك في ميزان حسناتك.. فعلاً بصراحة أنا محترف على vb6 لكن الدوت نت عندي مشاكل كثيرة معاه.. ومن ضمنها تلك المشكلة وانحلت..
لكن معلش عندي سؤال ثاني في نفس الموضوع تقريبا وهو عند النقر على الخلية نفسها فإن حدث dublclick لا يستجيب إلا إذا نقرت على العناوين في الأعلى أو على مساحة من الشبكة لا تحوي خلايا.. فكيف ذلك إذا ممكن ولك جزيل الشكر..
إن هذا طبيعي!
ان كنت تريد معرفة متى تتغير الخلية الحالية عليك استخدام الحدث
CurrentCellChanged
وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان
بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي
يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي
برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي
يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو
http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3
جزاك الله خير
معليش أنا ثقلت في الأسئلة..
القصد، هل يمكن استعمال الحدث dublclick على أساس النقر على خلية من الخلايا فيتم قراءة بيانات الخلية نفسها التي تم النقر عليها، مثلاً لإظهار تفاصيل عن البند الذي تم النقر عليه.
وسؤال آخر هل هناك طريقة لعرض البيانات في فيجول بيسك دوت نت عوضاً عن DataGrid مثل أداة MSFleixGrid في vb6.
ضمن الحدث CurrentCellChanged اكتب الكود التالي تستطيع الحصول على العنصر الحالي بالشكل :
maDataDrid(myDataGrid.CurrentCell.RowNumber,myDataGrid.CurrentCell.ColumnNumber).ToString()
بالنسبة ل MSFleixGrid فلسي لدي فكرة عنها
وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان
بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي
يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي
برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي
يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو
http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3
هناك الحدث YourDataGrid_ItemCommand(sender as object, e as DataGridCommandEvents)
يتحقق عند النقر على إحدى العناصر الموجودة في الـ DataGrid
مثال:
لو أنك نقرت على 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
يا إخوان أشكركم على تجاوبكم معي، وسؤالي هو كيف يمكنني إذا طلب المستخدم مثلاً تفاصيل عن بند من البنود المعروضة على datagrid فإن عليه أن ينقر مرتين بالماوس على الصف الذي يطلب التفاصيل عنه، فيقوم الحدث click بقراءة البيانات على الصف الذي تم النقر عليه..
وآسف مالي غير الله ثم أنتم.
شكر للأخ DotNetExpert
وأيضاً شكر ismaeel وجزى الله الجميع الخير
سأفترض أنك تريد عرض معلومات عن شخص عُرض اسمه فقط في الـ DataGrid:
استخدم LinkButton ضمن الـ DataGrid وأعطه الخصائص التالية:
LinkButton1.Text = "Person Text" LinkButton1.CommandArgument = "Person ID"
ثم استخدم خاصية الـ ItemCommand التي كتبتها في رد سابق
أرجو أن أكون أصبت فيما تريد
الأخ ismaeel أولاً جزاك الله خير
ثانياً بالنسبة الكود الذي كتبته يبدوا عليه جيد لكن أريد أن أعرف أين أجد للأداة LinkButton ربما حللت المشكلة بالطريقة التي أعطيتني إياها.. يعني أحتاج قليل من التفصيل..
وأدعو الله أن يجزيك الخير..
الأداة LinkButton هي إحدى أدوات الـ ASP.NET مثل DataGrid و HyperLink, فقط اكتب في المحرر الخاص بالـ .NET <ASP:LinkBut واضغط Ctrl+Space وسوف تظهر لك جميع عناصر الـ .NET تقريباً
الأخ ismaeel أولاً أشكرك جداً على تواصلك معي..
لكن بالنسبة لكلامك ربما فهمت منك أن أفتح مشروع ASP.NET وأنقل الأداة منه أم ماذا.. أرجو الإيضاح..
ما عليك أنا ترى توي داش على .NET برغم أني لدي خبرة في الإصدارات السابقة من فيجول بيسك
أشكرك جداً وأنا بانتظارك إن شاء الله
إن الموضوع ليس بهذا التعقيد ان كان كل ما تريده هو عرض خلية(أو أكثر) من الجدول مقابلة للسجل الحالي ضمن 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
أرجو مساعدتي فأنا قد فعلت ما قلتم عنه ووضعت
myDataColumn.Expression= "Prise * Quanity";
وقد ضبط ولكني اريد أن يتم حفظ نتيجة الضرب بداخل حقل موجود في قاعدة البيانات فكيف ذلك أرجوا افادتي وشكرا
هذا الموضوع مغلق.