我在点击 <{1}} ImageButton
内GridView
ImageButton
此<GridView ......>
<asp:HyperLink ID="HyperLink2" runat="server"
NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"VehID","mngVeh.aspx?delid={0}") %>'>
<asp:ImageButton runat="server" ID="DeleteUrlImageButton"
width='24' height='24'
ImageUrl="~/images/delete.jpeg"
OnClick="DeleteUrlImageButton_Click"
OnClientClick="return confirm('Are you sure you want to delete?');" />
<!--<img src="images/delete.jpeg" alt='edit' border="0" width='24' height='24'/> -->
</asp:HyperLink>
</GridView>
我必须调用一个函数。
这是我尝试的方式,并没有调用该功能。
代码inside.aspx页面:
public void DeleteUrlImageButton_Click(object sender, EventArgs e)
{
//code to perform the necessary action.
}
.aspx.cs页面中的代码:
{{1}}
答案 0 :(得分:0)
因为您将ImageButton包装在超链接中,所以浏览器可能会转到超链接的URL而不是回发以点击OnClick功能。您应该让DeleteUrlImageButton_Click函数调用Server.Transfer或Response.Redirect到相应的URL并删除超链接。
答案 1 :(得分:0)
当然它不会被触发,因为它嵌套在超链接中。因此,imagebutton充当hperlink的文本,超链接不会导致回发。 ImageButton只有在脱离超级链接时才会导致所需的操作。试试这个:
<asp:GridView ....
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:ImageButton runat="server" ID="DeleteUrlImageButton"
width='24' height='24'
ImageUrl="~/images/delete.jpeg"
OnClick="DeleteUrlImageButton_Click"
OnClientClick="return confirm('Are you sure you want to delete?');"
PostBackUrl='<%# DataBinder.Eval(Container.DataItem,"VehID","mngVeh.aspx?delid={0}")
%>'/>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
ImageButton可以完成不需要Hyperlink只需使用postbackurl的工作,它会将你重定向到页面。您可以省略HyperLink。 按钮控件(如LinkButton,ImageButton和Button)设计为默认返回。
编辑:确保事件名称和参数正确无误。这是我用来测试它的事件。在这种方式中不要忘记将ImageButton放在TemplateField中,请参阅上面的代码
protected void DeleteUrlImageButton_Click(object sender, ImageClickEventArgs e)
{
TextBox5.Text = "Fired ";
//Response.Redirect( ((ImageButton)sender).PostBackUrl);//uncomment this if the button does not automatically redirects. This line should be the last one
}