ba salam
man yek UserControl daram ke dar an yek Button ba yek HyperLink vojod darad
dar zir man ghesmati az code UserControl ra avardeh am.
Code Hyperlinke dar UserControl man
____________________________________________
asp:HyperLink ID="lnkVotePoll" runat="server" NavigateUrl = '<%#"Vote.aspx?PollId=" + Eval("ID") "%>
____________________________________________
Code Button Dar UserControl Man
____________________________________________
<asp:ImageButton runat="server" ID="ibtnDeletePoll" OnCommand="CommandbtnDeletePoll_Click" CommandArgument='<%# Eval("ID") %>' OnClick="ibtnDeletePoll_Click"/>
_______________________________________________
man in UserControl ra dar yek column az griedview Load mikonam ba code zir
TemplateField tfPollActions = new TemplateField();
tfPollActions.ItemTemplate = LoadTemplate("~/UserControls/PollActions.ascx");
dgrdPollsInSelectedCategory.Columns.Add(tfPollActions
ta in ja moshkeli nist va hame chi dorost load mishavad va columni ham ke UserCotrol darad be dorosti load mishavad , am OnClick and OnCommand button ke dar UserControl vojod darad va dar gridview namayesh dade shode ast kar nemikonad.
dar sorati ke man hamin UserControl ra kharej az girdview estefade mikonam , yani dar yek page migozaram va page ro bind mikonam ba estefade az asp:FormView.in Usercontrol ham dorost load mishavad va ham OnClick and OnCommand button kar mikonad..
aya dalili vojod darad , ya estefade az LoadTemplatefield eshkali ijad mikonad?
mamnon misham agar kasi be man komak kone.
.
سلام
شما دوچاره یک اشتباه شدین اون هم اینکه وقتی یک دکمه توی یک صفحه قرار دارد برای خودش یک event دارد ولی وقتی این دکمه درون یک grid یا gridview قرار می گیرد دیگر نمی توانید event قبلی را برایش صدا بزنید
شما باید برای آن دکمه یک CommandName بگذارید و یک CommandArgument که یک مقدار یا value را ست کنید بعنوان مثال:
<asp:Button id=Button3 runat="server" Text="Button" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.ID", "{0}") %>'>
CommandName = Delete
و
CommandArgument= 2
حالا چگونه می شود برایش کد نوشت . در این زمان شما باید از طریق event های مرتبط با Datagrid یا gridview که نامش فکر کنم itemcommand یا command item باشد می توانید برایش کد بنویسید:
if(e.commandname=="Delete")
{
int id = int.parse(e.commandargument);
////
}