PDA

View Full Version : انتخاب چند سطر در GridView



qeidarlo
شنبه 23 بهمن 1389, 18:15 عصر
سلام
یه صورت طبیعی فقط یک سطر gridview قابل انتخاب است.اگر بخوام gridview قابلیت انتخاب چند سطر رو داشته باشه چیکار باید کنم.ممنون میشم اگه جوابمو بدین

b.paseban
شنبه 23 بهمن 1389, 18:34 عصر
سلام دوست عزیز.
میتونی از checkbox استفاده کنی و اوناییرو که انتخاب کردی ازشون استفاده کنی. البته این کار در code behind انجام میشه.
برای هر سطر یه checkbox بزار و بعد بیا توی کدات ببین کدوم یکی از checkbox ]امون تیک خورده.

qeidarlo
شنبه 23 بهمن 1389, 18:57 عصر
درسته اما مشکل اینجاست که به ستونهای gridview فقط میشه داده های Datacontrolfield اضافه کرد و checkBox از این نوع نیست.تازه checkboxField هم که قابل اضافه کردنه با برای داده ای پایگاه دادست و باهاش از این کارا نمیشه کرد

mehrdad85
یک شنبه 24 بهمن 1389, 08:00 صبح
سلام

دوست خوبم از پیگیری های مستمرت مشخصه که پروژه ای شروع کردی به خاطر همین سعی کردم که حدالمقدور هر چه سریعتر جواب سوالاتو بدم که به موقع بتونی کارتو تحویل بدی
در رابطه با این سوالت میتون م اینطور واست توضیح بدذم که کافیه از طریق wizard menu کنار gridview گزینه add new column را انتخاب کنی و بعد از اون نوع column را template field انتخاب کنی و خصوصیت header text اون را برابر مقداری قرار بدی که میخوای عنوان ستون باشه که در این مورد خاص میتونه مثلا "انتخاب" باشه
تا اینجا که مشکل نبود؟

حالا داخل source برو و جایی که template field را اضافه کرده پیدا کن و داخل اون یه item اضافه کن ok?
نگران نباش اضافه کردن item کار سختی نیست اما با این حال کدشو میذارم که بدونی کار عجیب غریبی قرار نیست انجام بدیم!!!

کافیه داخل<ItemTemplate> کنترل را که میخای داخل ستون باشه اضافه کنی همین
دیدی چقدر ساده بود؟

چون توضیح دادنم خوب نیست :متعجب: کد هم برات میذارم که حال کنی!!


<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="انتخاب">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


امیدوارم تونسته باشم کمکت کنم

موفق باشی

qeidarlo
یک شنبه 24 بهمن 1389, 10:03 صبح
مشكلم حل شد اما وقي كه تيك checkbox ها رو در موقع نمايش ميزنم و صفحه به سمت server ارسال ميشه،به حالت اول برگشته و هيچكدام انتخاب نشده اند.تازه از صفحه ارسال شده هم تمام مقادير false گرفته ميشه


CheckBox chk;
int i = 0;
foreach (GridViewRow rowItem in gvLesson.Rows)
{
chk = (CheckBox)(rowItem.Cells[0].FindControl("chbLesson"));
if (chk.Checked)
{
Label1.Text += chk.Checked.ToString() + " ";
}

}

تو كد بالا چه تيك checkbox ها زده شده باشه يا نه ،توبررسي False در نظر گرفته ميشن

mehrdad85
یک شنبه 24 بهمن 1389, 10:34 صبح
سلام دوست عزیز

وقتی میخای صفحه را به سرور بفرستی ستون هایی که تیک خوردن را داخل یه آرایه بریز و بعد از اون آرایه به ستون هایی را که تیک خوردن دسترسی داشته باش


نمیدونم درست منظورتو فهمیدم یا نه
اما اگه مشکلت اونی باشه که من فهمیدم احتمالا این کار حلش میکنه من خودم هم خیلی وقتا از این روش استفاده میکنم


موفق باشی

qeidarlo
یک شنبه 24 بهمن 1389, 11:05 صبح
ممنون از راهنماييت ولي هر وقت كد سي شارپ رو اجرا ميكنم امكان خوندن مقادير وجود نداره.چه توسط ارايه چه با هر روش ديگه. و اينم به اين دليله كه وقتي صفحه رو ميفرستم كد سي شارپ با تنظيمات اوليه بررسي رو انجام ميده، نه تغييراتي كه من به صفحه ائمال كردم