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

كيفية إخفاء عمود في DataGrid عن طريق سي شارب C#

مغلق
بدأه jooorj في 22 أكتوبر 2006 · 7 رد · 1,308 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ألسلام عليكم

أود الاستفسار عن كيفية إخفاء عمود في DataGrid عن طريق سي شارب C#؟

مثلا عندي اعرض كل حقول الداتا بيس ولا أريد حقل ال ID مثلا لانه يكون غالبا Primary Key؟

وشكرا

موقوف من المشاركة لقلة الأدب

============================

#2

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

السؤال تكرر كثيرا هنا في المنتدى. وعلى كل حال هذه الأمور الخاصه بالـ DataGrid يتم التحكم بها من خلال الـ TableStyles.

اقرأ ردي على الرابط :

/index.php?showtopic=108502

ربما يفيدك.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

أشكر الجميع على الردود

لكن يبقى السؤال كيف أخفي العمود عن طريق الكود لاني لا استخدم المعالج كما تفضل أخي بالشرح..

وانما عن طريق الكود

موقوف من المشاركة لقلة الأدب

============================

#4

اخى يمكنك ان تعدل فى كود ال select مثلا:

sqlcommand.commandstring = "select (employeename,employe ID,Address) fom employee";

تم تعديل هذه المشاركة بواسطة CsharpProgrammer في 23 أكتوبر 2006 في 02:18

#5

الـ TableStyles غيرها كأي شيء, يمكن أن تضيف اليها من خلال الكود أو الـ Designer. اقرأ دري الموجود في الرابط السابق واكتب الكود المقابل له.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#6

أخوي الكريم

أولا .ردك كان باستخدام 2005 نت

انا استخدم 2003

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

لو حد يقدر يبعث برنامج وانا أشوف الكود بأكون شاكر له...

انا استخدم الكود وليس المعالجات...

وشكرا لك اخي الكريم على اهتماماتك المتواصلة :) . جزاك الله كل خير وعيدك سعيد.

موقوف من المشاركة لقلة الأدب

============================

#7

العفو يا أخي, و "يا جمال العيد يا جماله" :)

وأنا عموما لم أرفق صور هناك, ولا أشرح شئ في الـ VS 2005 الا عندما انوه لذلك, ولم انوه عن ذلك هناك وبالتالي أنا اقصد VS 2003.

عموما هذا مثال :

لدينا جدول به عمود اسمه TheID و عمود آخر اسمه TheForumName موجودين في جدول اسمه "المنتديات", ونود أن يظهر فقط للعميل عمود TheForumName ولا نود نظهر الـ TheID. وربما نريد ان نجعل الـ NullText للبيانات الموجوده في الـ TheForumName شيء آخر غير الـ ( null ) التي بين القوسين لأن شكلها بيبأه رخم.

نفترض الجدول كالتالي وبه عدد من الصفوف :

DataTable someDataTable = new DataTable("المنتديات");
someDataTable.Columns.Add("TheID",typeof(int));
someDataTable.Columns.Add("TheForumName",typeof(string));

someDataTable.Rows.Add(new object[]{57,"C#"});
someDataTable.Rows.Add(new object[]{197,".Net PlatForm"});

والـ DataGrid الموجوده عندنا اسمها myDataGrid مثلا.

أول شيء نفعله هو عمل DataGridTableStyle للجدول بتاعنا ونجعل الـ MappingName الخاصه به هي نفس اسم الجدول "المنتديات" :

DataGridTableStyle mySomeDataTableStyle = new DataGridTableStyle();
mySomeDataTableStyle.MappingName = "المنتديات";

بعد ذلك أيضا نصنع DataGridColumnStyle للأعمده فقط المراد اظهارها ( في مثالنا نعمل للـ TheForumName فقط ) :

DataGridColumnStyle forTheForumNameColumnStyle = new DataGridTextBoxColumn ();
forTheForumNameColumnStyle.MappingName  = "TheForumName";
forTheForumNameColumnStyle.NullText = "اللا منتدى";
forTheForumNameColumnStyle.HeaderText = "اسم المنتدى";

في أول سطر عملت DataGridColumnStyle من نوع DataGridTextBoxColumn لأن هذا العمود يحتوي على Text وليس True Or False. وفي السطر الثاني وهذا أهم شيء جعلت الـ MappingName له هو نفسه اسم العمود الموجود في الجدول الأصلي. بعدها جعلت الـ NullText بـ "اللا منتدى" وتظهر هذه الكلمه عندما يكون هناك حقل بـ null.

بعد هذا اضف الـ ColumnStyle هذا للـ TableSyle الذي قمنا بانشاءه مسبقا ثم اضف الـ TableStyle للـ TableStyleCollection الخاصه بالـ DataGird :

mySomeDataTableStyle.GridColumnStyles.Add(forTheForumNameColumnStyle);
myDataGrid.TableStyles.Add(mySomeDataTableStyle);

وطبعا لا تنسى أن تجعل الـ someDataTable كـ DataSource للـ DataGrid :

myDataGrid.DataSource = someDataTable;

وأقتبس هذا واعدل عليه من ردي السابق :

"واضف GridColumnStyle لكل الأعمده التي تريدها ولا تنسى أن تجعل خاصية MappingName هي اسم العمود الأصلي في الـ Database أو بالأصح في الـ DataTable. واسند للـ HeaderText أي اسم أليف للمستخدم. ولا تقم باضافة GridColumnStyle للأعمده التي لا تود اظهارها.

بالطبع يوجد حلول أخرى غير ذلك. ولكن هذه الطريقه أراها الأفضل لأنها ستجعلك تتحكم بشكل سريع وبسيط في أشكال الجداول التي ستظهر في الـ DataGrid ( أقصد الجداول المتوقع جعلها كـ DataSource للـ DataGird ), مثلا يمكنك أن تجعل جدول كذا عندما يتم عرضه يظهر بلون كذا وحجم خط كذا وعندما يظهر جدول آخر يظهر بلون مختلف وخط مختلف عن الآخرين, وذلك يتم باضافة أكثر من TableStyle للـ DataGrid."

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#8

شكرا لك جزيلا الطريقة واضحة وصحيحة 100% بارك الله فيك :) أخي معتز

تم تعديل هذه المشاركة بواسطة jooorj في 24 أكتوبر 2006 في 00:24

موقوف من المشاركة لقلة الأدب

============================

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

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