ورود

View Full Version : مشکل با گذاشتن cherck box برای هر سطر gridView



بیتافرهی
جمعه 28 فروردین 1388, 23:13 عصر
سلام

من یه gridView بروی فرمم دارم که محتویات آن را به یک جدول از بانکم بایند کردم.مشکلم اینجاست که می خوام یه checkbox به هر ردیف این gridView اضافه کنم که وقتی کاربر آن checkbox را انتخاب کرد ،آن رکورد از gridView به یک جدول دیگر اضافه شود.(در واقع می خوام یک ستون جدید به گرید ویو اضافه کنم که محتویات آن برای هر سطر یک checkBox باشه)
سرچ کردم و یه کدایی پیدا کردم ولی با اونا کارم راه نیفتاد ،چون من نمیدونم باید چه تغییراتی را از قبل به gridView اعمال کنم.یعنی از ابتداش مشکل دارم.(گشتم ،نوشته بودن که باید اول add column را بزنم ،بعد Edit Template .من این هارو انجام دادم ولی check box ای ایجاد نشد)

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

protected void Button1_Click(object sender, EventArgs e)
{
int i, row_selected = 0;
CheckBox chk = new CheckBox();

for (i = 0; i <= myGridView.Rows.Count - 1; i++)
{
chk = (CheckBox)myGridView.Rows[i].FindControl("choose");
if (chk.Checked)
{
row_selected++;
Session["crs_selected_id" + row_selected.ToString()] = myGridView.Rows[i].Cells[0].Text;
Session["full_payment"] = Convert.ToInt32(Session["full_payment"]) + Convert.ToInt32(myGridView.Rows[i].Cells[3].Text);
}
}
}

خطایی که برنامه داد:

Object reference not set to an instance of an object

1-مگر با نوشتن این کد ،خودش به GridView ،چک باکس اضافه نمی کند؟اگر نه چه جوری باید اونو ایجاد کنم؟
2-معنی کد زیر چیه؟نام چک باکسها choose است؟

chk = (CheckBox)myGridView.Rows[i].FindControl("choose");

iman_22a
شنبه 29 فروردین 1388, 00:29 صبح
اون کد آخر اتوماتیک براتون CheckBox ایجاد نمی کنه . CheckBox را شما از همون روش Edit Template ایجاد می کنین . با اون کد آخر توی ردیفهای گریدویو میگردید و یه نمونه از Checkbox مورد نظر را با دستور FindControl پیدا می کنین و ...

اون اروری که داده به خاطر اینه که Checkbox ی به نام Choose پیدا نمی کنه واسه همین ارور میده . Checkbox را اضافه کنین و نام کنترل را Choose قرار بدین .

برای اضافه کردن Checkbox بایستی Add New Column رو بزنین و از توی لیست Template رو انتخاب کنین ( یه Header Name هم بهش بدین که موقع ادیت کردن بهتر قابل تشخیص باشه ) اضافه کردن ستون Template که تمام شد . Edit Template کنین و از توی لیست ستون موردنظر رو انتخاب کنین . گریدویو به حالت ویرایش در میاد و می تونین کنترل CheckBox رو اضاف کنین و نامش رو Choose بذارین .

بیتافرهی
شنبه 29 فروردین 1388, 07:50 صبح
اضافه کردن ستون Template که تمام شد . Edit Template کنین و از توی لیست ستون موردنظر رو انتخاب کنین . گریدویو به حالت ویرایش در میاد و می تونین کنترل CheckBox رو اضاف کنین و نامش رو Choose بذارین .
من ستون جدیدی که قبلا در جدول وجود نداشت با Add New Column , از نوع TemplateField اضافه کردم.بعد هم edit Template را زدم وCollumn[4]-select را انتخاب کردم.با این کار در کدام کادر باید checkBox را قرار بدم؟؟
چون اون گرید ویو به صورت کادرهای Item Template ,EditItem Template,header Template ,... در اومد.

هر چند که من همشونو امتحان کردم
ولی وقتی اجرا می کردم،خارج از گرید ویو وفقط یک check box وجود داشت.در صورتیکه هدف من این بود که به ازای هر سطر گرید ویو یک checkBox به عنوان انتخاب اون رکورد (هر رکورد معادل یک درس است) موجود باشه.
مشکل از کجاست.من که مواردیکه فرمودید رعایت کردم.

kiosksoft
شنبه 29 فروردین 1388, 08:06 صبح
با این کار در کدام کادر باید checkBox را قرار بدم؟؟


در قسمت Item Template قرار دهید .

سیدمقداد
شنبه 29 فروردین 1388, 13:41 عصر
دوست عزیز از این کد استفاده کن- فونت بولد :





<columns>
<asp:boundfield datafield="Id" headertext="کد" sortexpression="Id" />
<asp:boundfield datafield="Name" headertext="عنوان" sortexpression="Name" />
<asp:commandfield showeditbutton="true" edittext="ویرایش" />
<asp:templatefield>
<itemtemplate>
<asp:checkbox id="ckbDelete" runat="server" text="حذف" cssclass="AdminLabel" />
</itemtemplate>
</asp:templatefield>
</columns>

sara59
سه شنبه 20 مرداد 1388, 14:01 عصر
چگونه با استفاده از checkbox و گریدویو چند سطر را انتخاب کرد و در یک صفحه دیگر جواب نمایش داد.سورس برنامه با #c