PDA

View Full Version : سوال: Edit in gridview with dropdownlistکمک



amin_heidaryy
یک شنبه 28 تیر 1388, 11:04 صبح
من تو قسمت ویرایش یک سطر 1 dropdownlist دارم که تو حالت ویرایش Bind هم میشه اما مشکلم اینه که ایتم انتخاب شده dropdownlist همیشه ایتم 1 هست.چیکار کنم که تو حالت ویرایش ایتم انتخاب شده همون ایتمی باشه که تو گرید ویو داره نمایش داده میشه.البته هم نمایش داده بشه هم Value که بر میگردونه مربوط به همون ایتم خودش باشه.
راه حل این روش با sqldatasource راحته.اما من دارم گریدویو را با <نام کلاس> Ilist پر می کنم اینم کد بایند کردنم

((DropDownList)gvTask.Rows[idx].Cells[1].FindControl("ddlEditFirstGroup")).DataSource = new BLL.Group_Bll().GetFirstGroup();
((DropDownList)gvTask.Rows[idx].Cells[1].FindControl("ddlEditFirstGroup")).DataTextField = "title";
((DropDownList)gvTask.Rows[idx].Cells[1].FindControl("ddlEditFirstGroup")).DataValueField = "groupID";
((DropDownList)gvTask.Rows[idx].Cells[1].FindControl("ddlEditFirstGroup")).DataBind();

البته اگه کد در قسمت سورس هم باشه مشکلی نداره.من بنا به دلایلی اینجوری نوشتم.
ممنون می شم اگه کسی راه حل این کارو بدونه و بگه.چون خیلی بهش نیاز دارم.
اینترنتم زیاد گشتم اما هیچ کدوم جواب نداد همه با sqldataSource بود:عصبانی++::گریه:

Behrouz_Rad
یک شنبه 28 تیر 1388, 12:18 عصر
متونی که با سینتکس Binding بر روی صفحه نمایش داده میشن، با استفاده از کنترل DataBoundLiteralControl قابل بازیابی هستند. در روال RowEditing کنترل GridView، این متن رو بازیابی کن و مثلاً در یک Session قرار بده.

سپس در روال RowDataBound کنترل GridView، ابتدا بررسی کن که آیا در حالت ویرایش هستی یا خیر:


if ((e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit) || (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState.ToString() == "Alternate, Edit"))

سپس به DropDownList ارجاع پیدا کن و با کدی شبیه به کد ذیل، آیتم مورد نظر رو انتخاب کن:


ListItem item = myDropDownList.Items.FindByText(Session["mySession"]);
if (item != null)
{
item.Selected = true;
}


موفق باشید.

amin_heidaryy
یک شنبه 28 تیر 1388, 17:18 عصر
مشکل حل شد