通过使用gridview中的图像按钮在后面的代码中调用函数

时间:2012-01-17 23:27:33

标签: c# asp.net

我在点击 <{1}} ImageButtonGridView 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}}

2 个答案:

答案 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。  按钮控件(如LinkBut​​ton,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 
}