PDA

View Full Version : استفاده از CommandArgument یک ImageButton در GridView



hirkania_ilp
چهارشنبه 25 فروردین 1389, 10:01 صبح
من با gridview کار می کنم .توش یک ImageButton انداختم اما commandArgument اون مقداری برام بر نمی گردونه!نیاز به کمک فوری دارم:


<asp:TemplateField HeaderText="ویرایش" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="imgBtnEdit" runat="server" CommandArgument='<%#Eval("userGrpID")%>'
Height="26px" Width="29px" ImageUrl="Images/Edit.ico" ImageAlign="AbsMiddle"
OnClick="imgBtnEdit_Click" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>


حتی در commandargument از کد زیر هم ایتفاده کردم نشد :



CommandArgument='<%#DataBinder.Eval(Container.DataItem, "userGrpID")%>'



و مقدارش رو هم از طریق زیر می خوام بگیرم :



protected void imgBtnEdit_Click(object sender, ImageClickEventArgs e)
{
ImageButton img = new ImageButton();
string GrpId = img.CommandArgument.ToString();

Session["userGrpID"] = img.CommandArgument.ToString();
Response.Redirect("~/EditUserGroup.aspx");
}



خواهش می کنم کمکم کنید!

milade
چهارشنبه 25 فروردین 1389, 10:37 صبح
شما ميتوني در Row_Command گريد ، با e يا sender كار كني .
برا گرفتن ارگومونت فكر كنم با e بايد كار كني ( يادم نيست درست !‌)

يه جستجو بزن خودم قبلاْ ها جواب دادم !!!

hirkania_ilp
چهارشنبه 25 فروردین 1389, 10:45 صبح
من درست متوجه نشدم باید چی کار کنم!!می شه بیشتر توضیح بدید؟

milade
چهارشنبه 25 فروردین 1389, 10:55 صبح
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

Vahid_moghaddam
چهارشنبه 25 فروردین 1389, 10:59 صبح
شما علاوه بر command argument برای دکمه command name هم مشخص کنید. مثلا command. اینطوری شما می تونید از command های مختلف استفاده کنید. وقتی دکمه فشار داده می شه، رویداد RowCommand در GridView اجرا می شه. در این رویداد کاری رو که می خوایدف انجام بدید. مثال:


protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Command")
{
object o=e.CommandArgument;

}
}

hirkania_ilp
چهارشنبه 25 فروردین 1389, 11:06 صبح
از راهنماییتون ممنون اما
من از این روش نمی خوام برم!من قبلا یک صفحه با همین روشی که کدش رو گذاشتم ایجاد کردم و مشکلی نداشت!اما تو این صفحه مقادیر رو بر نمی گردونه.اگر امکانش هست در این زمینه و این روش راهنماییم کنید که چرا این طور شده.
ممنون

hirkania_ilp
چهارشنبه 25 فروردین 1389, 11:21 صبح
دوستان عزیز
مشکلم حل شد.
البته هنوزم نفهمیدم مشکل راه قبلیم چی بود اما بادادن command name حلش کردم :-)
از همتون ممنونم .

Vahid_moghaddam
چهارشنبه 25 فروردین 1389, 11:44 صبح
اشکال کد قبلی شما:


ImageButton img = new ImageButton();
string GrpId = img.CommandArgument.ToString();



شما یه ImageButton رو new کردید. ارتباطش با گرید ویو چیه؟ Command Argument این دکمه از کجا میاد؟
به این روش عمل کنید:



ImageButton img=(ImageButton) sender;
object o=img.CommandArgument ;