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

سؤال:عمل اعمدة مخفية في ال datagrid ؟؟

مغلق
بدأه Romantic_touch في 21 سبتمبر 2005 · 13 رد · 1,208 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني انا عملت لكم مشروع جاهز بس اللهم يضيفون عليه كيف يمكن اضافة عمود مخفي في الداتا جريد برمجيا؟؟

مع التحكم بعرض الأعمد وتوسيط الكلام

المشروع جاهز بس باقي اضافة الكود ولكم كل الشكر

ياريت الرد يكون على نفس المشروع ويتم تحميله مرة اخرى بعد التعديل

CarSol.zip

تم تعديل هذه المشاركة بواسطة crazy-man في 24 سبتمبر 2005 في 04:12

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#2

السلام عليكم

في عدة طرق لإعطاء اسماء غير المعرفة في قاعدة البيانات سواءً عن طريق جملة الاختيار Select Statement

كمثلاً Select myColumn as FirstName أو عن طريق إنشاء عنصر من نوع TableStyle

هذا العنصر عبارة عن جدول للـ DataGrid و العنصر Table Style له عناصر تمثل الاعمدة Grid Style

وهي متنوعة كمثلاً خانة نصية أو خانة منطقية أو إختيارية أو قائمة منسدلة ,,,, إلخ.

الطريقة كالتالي ننشئ عنصر من TableStyle ثم نقوم بتعبئته بالاعمدة التي نرغب في ظهورها في البرنامج

ولأخفاء عمودٍ ما فقط لا ندرجه ضمن الاعمدة لا أكثر ,, ثم بعد أن ننتهي نقوم بضم هذا الـ TableStyle في الـ DataGrid

شاهد النصوص البرمجية التالية .

    Sub BindingDGCars()

        Try

            ' You must clear out the TableStyles collection before 
            dg.TableStyles.Clear()

            Dim grdTableStyle1 As New DataGridTableStyle
            With grdTableStyle1
                .MappingName = ds.Tables(0).TableName
            End With


            Dim grdColStyle1 As New DataGridTextBoxColumn
            With grdColStyle1
                .MappingName = "Car_Name"
                .HeaderText = "اسم المركبة"
                .Width = 80
                .NullText = String.Empty
            End With

            Dim grdColStyle2 As New DataGridTextBoxColumn
            With grdColStyle2
                .MappingName = "Car_Type"
                .HeaderText = "نوع المركبة"
                .Width = 80
                .NullText = String.Empty
            End With

            Dim grdColStyle3 As New DataGridTextBoxColumn
            With grdColStyle3
                .MappingName = "Car_Color"
                .HeaderText = "لون المركبة"
                .Width = 80
                .NullText = String.Empty
            End With

            Dim grdColStyle4 As New DataGridTextBoxColumn
            With grdColStyle4
                .MappingName = "Car_No"
                .HeaderText = "رقم المركبة"
                .Width = 100
                .NullText = String.Empty
            End With


            grdTableStyle1.GridColumnStyles.AddRange _
                (New DataGridColumnStyle() {grdColStyle1, grdColStyle2, _
                grdColStyle3, grdColStyle4})
            dg.TableStyles.Add(grdTableStyle1)

        Catch ex As Exception
            Throw ex
        End Try

    End Sub

ملاحظة : أخي الكريم ( دائماً تجنب ما يعرف بـ Unbound DataSet )

وعرفها على اساس Bound DataSet بحيث يتم تعريفها عن طريق الـ Design Time وليس عن طريق الـ RunTime

لانها أسرع بكثير و أحكم

بالتوفيق و السداد إن شاء الله.

CarSol.zip

في المثال يتضح المقال

#3

الف شكر اخوي الغملاسي على هذا الجواب الجميل

ولكن لازالت هناك بعض النقاط الغير مجاوب عليها وهي

1- انا اريد ان اقرأ اسم الشركة واسم الشركة في جدول اخر مربوط بجملة INNER JOIN فكيف اقد ان احصل على قيمته وانا لم ادخله في الداتا جريد.

2- نفس الحالة تقريبا مع الرقم التسلسلي لجدول السيارات فاذا اردت ان احصل عليه يجب ان ادخله في الداتا جريد وانا لا اريد ان يراه المستخدم :(

؟؟؟؟؟؟؟؟؟؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#4

السلام عليك

أحسن اللهُ إليك , لإيجاد حل لمثل هذه المشاريع أما أن تكون الـ DataGrid عبارة عن Parent & subs اي فيها الجداول الفرعية مع الجدول الرئيسي

أو عن طريق العنصر View في SQL ثم تقوم بعملية Binding مع الـ DataGrid والله اعلم.

في المثال يتضح المقال

#5

الأخ المتميز الغملاسي اسمح لي اعيد صياغة المطلوباذا تكرمت

لنفرض ان لدي نموذج بحث وقمت بعملية لبحث وتعرض نتائج البحث في datagrid بشكل موجز , الان يقوم المستخدم باختيار الصف المطلوب من ال datagrid عند الضغط على احد الصفوف لتعرض معلومات العميل كاملة في نفس النموذج كاملة. ولنفترض ان اول عمود في الdatagrid يحتوي على ال PK الخاص بالعميل وهذه الفكرة هيه انه عند الضغط على الصف المطلوب نقرأ قيمة الـ PK ونعرض جميع البيانات الخاصة بالعميل لنجلب كل المعلومات الباقية من الجدول ونعرضها في النموذج وهذه الطريقة سهلة بالنسبة لي حيث اني يمكنني الحصول على قيمة الـ PK من العمود الآول وادراجها في جملة SELECT لاستعراض كل المعلومات,

ولكن السؤال هو اني لا اريد العميل ان يرى الـ PK فكيف يمكن ان احصل على الـ PK اذا لم اعرضه في احدة أعمدة الDatagrid!!?

اعتقد هكذا اوضح صح؟؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#6

السلام عليكم

واضح جداً

طيب الطريقة كالتالي

لابد أنك قد عرفت عنصر من نوع BindingManagerBase أليس كذلك ؟

على افتراض أنك قمت بذلك الان في الاجراء الذي يقوم بعملية الابحار في قاعدة البيانات عن طريق ازرار الابحار (next previous ,, إلخ.)

نقوم بتعريف متغير على النوع الذي تريد نصي أو رقمي ,,,

ثم إجعل هذا الرقم يأخذ قيمة الصف الحالي وفقاً للـ BMB في خاصية الـ Position الموقع الحالي بهذا الشكل

  Dim CurrentID As String = _
             CType(Ds2.Tables(0).Rows(BMBase.Position)("FileName"), _
             String)

            'Dim CurrentID As String = _
            'CType(DataSet.TableName.Rows(BindingManagerBase.Position)("ColumnName"), _
            'String)

الان كلما ضغط المستخدم على الصف سيكون المتغير CurrentID يحمل القيمة الحالية للعامود PK

والله أعلم .

في المثال يتضح المقال

#7

الأخ غملاسي انا تعبتك معايا والله اسف

بس انا اتكلم على الـ dataGrid هل هذا الكلام فيها؟؟؟

اذا ممكن تتكرم وتعدل على البرنامج اللي ارسلته يكون ممتاز واوضح لاني زي ماقلت لك اني لسه في اول الطريق لا تحرجني بالمسيمات الخطيرة دي :(

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#8

السلام عليك

بارك الله فيك, أنا لا أحرجك وانما أريد أن أعرفك على الامكانيات المتاحه لك في اللغة لأجل أن تبرمج بأفضل السبل او الامكانيات المتوفرة , اليس كذلك ؟

على كل حال (لا استطيع بناء المشروع نيابتاً عنك ) لكني إن شاء الله معك إلى النهاية , بجانبك للإرشاد فقط لا لتشيد البرنامج عنك , فهذا حتى أنت لا ترضاه..

ابحث عن BookAuthorsApplication في هذا المنتدى و شاهد النصوص البرمجية و حاول التعرف عليها عن طريق MSDN (ملفات المساعدة) المرافقة مع VS.NET

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

في المثال يتضح المقال

#9

الأخ الغملاسي انا امزح فقط فلا حياء في العلم

وانا بحاول ادور الان على هذا الموضوع في ال MSDN ولكن بسبب ان الوقت ضيق بالنسبة لي فسوف اضطر مؤقتا لإظهار الـPK الى ان اجد الحل وسوف اعطيك النتيجة :)

والف شكر

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#10

ألأخ العزيز غملاسي ابشرك لقيت حل مرة خفيف طريف

اضفت الأعمدة اللي انا محتاجها وما ابغى اظهرها وخليت قيمت العرض تبعها width=0 ومشي الحال تمام :)

هذا حل مؤقت الين مانتعلم شي جديد بدل الحلول المؤقتة.

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#11

للاسف بحثت و لم اجد هذا الملف

هل توجد طريقة معينة للبحث لا اعرفها؟

#12

الأخ الغملاسي كيف يمكن اضافة هذه الاستايلات في 2005؟؟

لم اجدها ولم اتمكن من عملها

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#13

Format Column

dataGridView1.Columns("ColumnName").DefaultCellStyle.ForeColor = Color.Red

Hide Columns

dataGridView1.Columns(0).Visible = false

بافتراض انه لدينا DataTabel وبه حقل اسمه "PName"

Dim col1 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn
            col1.DataPropertyName = "PName"
            col1.HeaderText = "الاسم"
            DataGridView1.Columns.Add(col1)
DataGridView1.DataSource=DataTable

تم تعديل هذه المشاركة بواسطة SOLO.NET في 22 ديسمبر 2005 في 19:31

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#14

الف شكر

تحت التجربة

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

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

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

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

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

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

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