通过在网格视图中使用image按钮在代码隐藏中调用函数
本文关键字:代码 按钮 调用 函数 image 隐藏 网格 视图 | 更新日期: 2023-09-27 18:20:40
我在.aspx中的GridView
中有一个ImageButton
。在单击该ImageButton
时,我必须调用一个函数。这就是我尝试的方式,但函数没有被调用。代码内部.aspx页面:
<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>
.aspx.cs页面中的代码:
public void DeleteUrlImageButton_Click(object sender, EventArgs e)
{
//code to perform the necessary action.
}
因为您将ImageButton包装在超链接中,浏览器可能会转到超链接的URL,而不是返回以点击OnClick功能。您应该让DeleteUrlImageButton_Click函数调用Server.Transfer或Response.Rirect到相应的URL并去掉超链接。
当然它不会被触发,因为它嵌套在超链接中。因此,image按钮充当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可以完成这项工作,不需要超链接,只需使用postbackurl,它就会将您重定向到页面。您可以省略HyperLink。按钮控件(如LinkButton、ImageButton和Button)被设计为默认情况下导致回发。
编辑:确保事件名称和参数正确。这是我用来测试它的事件
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
}