PDA

View Full Version : سوال: چگونه عنوان یک ستون را در GridView نمایش ندهم؟



hamparvaz
شنبه 06 مهر 1387, 17:41 عصر
سلام دوستان:خجالت:
من از طریق کد نویسی GridView رو به یکی از تیبل هام وصل کردم. ولی موقع نمایش کل فیلد هارو نشون میده در صورتی که من میخوام این کار هارو انجام بدم :
1- بعضی از ستون هارو نمایش ندم
2- عنوان ستون ها که اسم پیشفرض دیتا بیس هست رو به عنوان دلخواه خودم تغییر بدم.

زبان برنامه هم #C
راستی توی سرچ هم چیزی پیدا نکردم :افسرده:
ممنون از کمک شما اساتید:قلب:

kezack
شنبه 06 مهر 1387, 17:53 عصر
خوب در gridview قسمت Edit Colums رو ببين اونجا مي توني كار هايي كه مي خواي انجام دهي

hamparvaz
شنبه 06 مهر 1387, 20:30 عصر
خوب در gridview قسمت Edit Colums رو ببين اونجا مي توني كار هايي كه مي خواي انجام دهي

دوست عزیز من با کد گرید رو به Table وصل کردم
به خاطر همین چیزی برای نمایش در Edit Columns وجود نداره که من بخوام نمایشش ندم مگر اینکه یه فیلد رو خودم ساخته باشم

el_abdollahi
شنبه 06 مهر 1387, 23:54 عصر
خوب از sp استفاده کن. از alias واسه عنوان ستون ها استفاده کنید و ستون هایی ر. که نمیخواین نشون بده رو هم توی select نیارین.

hamparvaz
یک شنبه 07 مهر 1387, 01:58 صبح
خوب از sp استفاده کن. از alias واسه عنوان ستون ها استفاده کنید و ستون هایی ر. که نمیخواین نشون بده رو هم توی select نیارین.
ممنون از جوابتون دوست عزیز:قلب:
ولیچیزی که من میخوام اینه:
برای مثال من از فیلد USRID میخوام استفاده کنم (مثلا برای لینک به صورت QS) ولی نمیخوام اونو داخل گرید نشون بدم.
حالا راه حلتون چیه ؟

mahdi_farhani
یک شنبه 07 مهر 1387, 07:24 صبح
یه راه حل خیلی عجیب دارم برات .....
یه Datatable به صورت Temp ایجاد کن و ستون ها اونو هرجور که دوست داری تو گرید نشون بدی ایجاد کن و نام هر ستون رو هم فـارسی انتخاب کن که هدر ستون ها مشکل پیدا نکنه و بعد هم Row ها رو از اصلی به فرعی انتقال بده و گرید را بایند کن

el_abdollahi
یک شنبه 07 مهر 1387, 11:17 صبح
یه Datatable به صورت Temp ایجاد کن و ستون ها اونو هرجور که دوست داری تو گرید نشون بدی ایجاد کن و نام هر ستون رو هم فـارسی انتخاب کن که هدر ستون ها مشکل پیدا نکنه و بعد هم Row ها رو از اصلی به فرعی انتقال بده و گرید را بایند کن
__________________

اگه میخواستن اینجوری باشه که ستون ها رو خودشون واسه گرید درست میکردن و این مشکلات وجود نداشت. مشکل اینجاست که گرید دینامیکه!!!
به نظر من باید دید جدول هایی که به این گرید بایند میشن چه جورین؟
برای مثال اگه همه جدول هایی که بایند میشن یه فیلدی دارن که نباید نشون داده بشه، میتونین اون فیلد رو بزارین اول سلکت و تو کد بگین که ستون اول رو نشون نده. و یا اگه اون فیلد کلیده که به datakeyfield گریدویو اون رو بدین.
در ضمن لطفا اطلاعات بیشتری درباره کاری که میخواین این گرید انجام بده اینجا بزارین، هم چنین کدش رو.
موفق باشید.

saleh.hi.62
یک شنبه 07 مهر 1387, 11:34 صبح
دوست عزیز مگه شما در هر صورت از یه دستور اس کیو ال استفاده نمیکنی.
خوب میتونی اون فیلد هایی رو که میخوای تو دستور اس کیو الت بنویسی.

el_abdollahi
یک شنبه 07 مهر 1387, 11:43 صبح
پاسخ شما در پست شماره 5 داده شده!!!

mahdi_farhani
یک شنبه 07 مهر 1387, 15:43 عصر
اگه میخواستن اینجوری باشه که ستون ها رو خودشون واسه گرید درست میکردن و این مشکلات وجود نداشت. مشکل اینجاست که گرید دینامیکه!!!
به نظر من باید دید جدول هایی که به این گرید بایند میشن چه جورین؟
برای مثال اگه همه جدول هایی که بایند میشن یه فیلدی دارن که نباید نشون داده بشه، میتونین اون فیلد رو بزارین اول سلکت و تو کد بگین که ستون اول رو نشون نده. و یا اگه اون فیلد کلیده که به datakeyfield گریدویو اون رو بدین.
در ضمن لطفا اطلاعات بیشتری درباره کاری که میخواین این گرید انجام بده اینجا بزارین، هم چنین کدش رو.
موفق باشید.
برای چی میگن نمیشه به این کد نگاه کن


private DataTable CreateCoulmn(FieldsDataTable data)
{
DataTable temp = new DataTable();
DataColumn col ;
col = new DataColumn("شماره اختصاصی", typeof(Int32));
temp.Columns.Add(col);
foreach (DataRow dr in data.Rows)
{
FieldsRow fdr = (FieldsRow)dr;

col = new DataColumn(fdr.Title.Trim(), typeof(string));
temp.Columns.Add(col);

}
return temp;
}

با این تابع سطرهای یک جدول را به عنوان ستون های یک گرید معرفی کردم .دیگر بیشتر از این داینامیک میخواین باشه :چشمک:
در ضمن شماره اختصاصی به عنوان Datakeys به گرید معرفی شده
و برای عدم نمایش فقط کافیه یه شرط بزاره که این فیلد تو این گرید نیاد .
حالا شما تازه با تابع ستون ها را ساختید ، حالا با استفاده از یک حلقه سطرها بش اضافه کنید .

mahdi_farhani
یک شنبه 07 مهر 1387, 16:12 عصر
تو تنظیماتی که خود برنامه توی منوی سمت راست بهت نشون میده این کار ها رو می تونی بکنی.باید مشخصات رو فقط true و false کنی

عزیز دل برادر تنظیمات سمت راستی دیگه وجود نداره ستون ها داره به صورت پویا ساخته میشه ، یعنی شما فقط یک گرید دارید .

در ضمن یادم رفت بگم Autogenereat گرید یادتون نره

amironline
یک شنبه 07 مهر 1387, 16:57 عصر
شما ميتوني ستونهاي GridView رو هر جوري كه ميخواي بسازي
بعدش داده هاتو از ديتابيس بخوني و داخل DataReader بريزي بعد با يه حلقه while اونايي رو كه ميخوايي داخل GridView قرار بدي

kezack
یک شنبه 07 مهر 1387, 19:32 عصر
يك راه حل بد :خجالت: ولي جواب مي ده كه بتوني با كد ...

hamparvaz
یک شنبه 07 مهر 1387, 19:42 عصر
ممنون از راح حل هایی که پیشنهاد دادید دوستان
واقعا ممنون از لطف همگی

من این روش رو یکی از دوستان برنامه نویس بهم معرفی کرد
متاسفانه نمیدونم کی هستن ولی بازم ممنون ازشون. ایشون گفتن:
AutoGenerateColoumns رو False کنم و بعد با تنوعی که خودم میخوام اقدام به ساختن فیلد ها کنم. امتحان کردم این روش رو
تونستم به طور ضمنی UsrID رو مخفی کنم در حینی که ازش استفاده میکنم داخل لینکلیبل و...

el_abdollahi
دوشنبه 08 مهر 1387, 00:33 صبح
خسته نباشید!!!!
من فکر میگردم شما این رو میدونین ولی یه گریدویو میخواین که انواع مختلف جدول ها رو با فیلدهای مختلف بشه بهش بایند کنن.
به هر حال موفق باشید.

hamparvaz
دوشنبه 08 مهر 1387, 01:06 صبح
خسته نباشید!!!!
من فکر میگردم شما این رو میدونین ولی یه گریدویو میخواین که انواع مختلف جدول ها رو با فیلدهای مختلف بشه بهش بایند کنن.
به هر حال موفق باشید.

اتفاقا این موضوع رو قبل از اینکه شما بفرمایید اینجا (http://barnamenevis.org/forum/showthread.php?t=124751)گذاشتمش :افسرده: هیشکی نیگاش نکرده

a_mehdizadeh
جمعه 12 مهر 1387, 17:22 عصر
تونستم به طور ضمنی UsrID رو مخفی کنم در حینی که ازش استفاده میکنم داخل لینکلیبل و...

سلام دوست عزیز من هم مشکل شما رو دارم یعنی یک gridview دارم که اطلاعاتی رو با کد به اون bind کردم که می خوام ستونی به نام id در gridview باشه ولی نمایش داده نشه چون می خوام از این ستون استفاده کنم،خلاصه اینکه لطف کنید و بگید از چه کدهایی و چطوری برای حل مشکلتون استفاده کردید ممنون.

kezack
جمعه 12 مهر 1387, 17:44 عصر
فكر مي كنم ميتوني از hiddenField استفاده كني در قسمت tempeletField در قسمت EditTemplete يك hiddenField قرار بده و مقدارش رو به id كه مي خواي بايند كني

a_mehdizadeh
جمعه 12 مهر 1387, 21:56 عصر
سلام دوست عزیز گفتم که من اطلاعاتم رو با کد bind کردم .

a_mehdizadeh
یک شنبه 14 مهر 1387, 09:09 صبح
سلام
هیچ کدوم از شما نمی خواد جواب سوالم رو بده من خیلی سریع به این کد احتیاج دارم ممنون میشم کمک کنید.

kezack
یک شنبه 14 مهر 1387, 23:38 عصر
خوب دوست خوب شما اون قسمت روي grid فكر كنم به نام Auto generet Field رو تيكشو بردار و بعد توش اون فيلد هايي كه مي خواي قرار بده كه واسه اينكار يك TempleteField به أن اضافه كن و فليد هاتو به اون بايند كن و او ن فليدي كه نمي خواي نشون بدي از HiddenField استفاده كن