PDA

View Full Version : هندل کردن ایونت های checkbox در یک دیتاگرید



saffari2005
پنج شنبه 06 بهمن 1384, 10:56 صبح
سلام
اگر در دیتاگرید از checkbox استفاده کنیم هیچ command Name یا چیزی که بشه به آن کنترل دسترسی داشت وجود نداره.چطوری میشه ایونت های مربوط به checkbox موجود در گرید رو کنترل کرد؟

jazire
پنج شنبه 06 بهمن 1384, 11:30 صبح
شاید مقاله زیر به دردتون بخوره...
http://www.iranasp.net/Articles/ShowArticle.aspx?articleid=143

saffari2005
پنج شنبه 06 بهمن 1384, 11:53 صبح
اما این لینک کار نمی کنه!!!

Behrouz_Rad
پنج شنبه 06 بهمن 1384, 20:30 عصر
روال مورد نظر برای CheckBox را به صورت دستی ایجاد کنید و برای دستیابی به یک CheckBox ازدستور در روال مورد نظر بهره ببرید:


Dim objChkBox As CheckBox = CType(sender, CheckBox)

موفق باشید.

saffari2005
شنبه 08 بهمن 1384, 14:41 عصر
سلام
برای درست کردن ایونت مشکلی نیست اما اصل موضوع اینه که نمی دونم کدوم checkbox در کدام سطر دیتاگرید کلیک شده والا خود checkBox رو می تونم بگیرم.یعنی اندیس سطر حاوی checkbox کلیک شده رو نداریم.راه حلی به نظرتون نمی رسه؟!

reza_rad
شنبه 08 بهمن 1384, 15:36 عصر
باید با ItemDataBound کار کنی
من خودم اینکار رو کردم.
این یک نمونه کد:

[code]private void dgrdRole_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(dgrdRole.EditItemIndex==-1)
{
ListItemType itemType = e.Item.ItemType;
if ((itemType == ListItemType.Pager) ||
(itemType == ListItemType.Header) ||
(itemType == ListItemType.Footer))
{
return;
}
LinkButton button = (LinkButton)e.Item.Cells[0].Controls[0];
e.Item.Attributes["onclick"] =
Page.GetPostBackClientHyperlink(button, "");
}
}[code\]

saffari2005
شنبه 08 بهمن 1384, 15:55 عصر
اما باز شماره سطر رو نداریم!!!

reza_rad
شنبه 08 بهمن 1384, 16:17 عصر
شمار هسطر خودش روی این ایونت بر میگرده لازم نیست که شما بهش بفرستی

Behrouz_Rad
شنبه 08 بهمن 1384, 21:58 عصر
با عرض احترام، به استحضار می رساند، من بعد، تاپیک هایی که ایجاد کننده ی آن پس از مطرح کردن سوالی مشخص، در پست های تاپیک خود، سوال خویش را تغییر دهد، حذف خواهند شد.
----------------
و اما پاسخ شما:
از روال فرزند - پدری کنترل ها استفاده کنید.


Dim xChkBox As DropDownList = CType(sender, CheckBox)
Dim Cell As TableCell = CType(xChkBox.Parent, TableCell)
Dim Item As DataGridItem = CType(Cell.Parent, DataGridItem)
Response.Write(Item.ItemIndex)

موفق باشید.

saffari2005
یک شنبه 09 بهمن 1384, 09:32 صبح
ممنون و متاسفم چون سوالم رو خوب مطرح نکردم.