0

我在 radgridview 列内构建了一个 ImageButton。定义如下。

<asp:ImageButton ID="ImageButton_DeleteRun" ImageUrl="~/Assets/Images/Misc/delete.png"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'
Width="10" Height="10" />

它正确加载。当我点击它时,我希望点击以下代码隐藏方法:

protected void QueryDelete(object sender, EventArgs e)
{
/* A bunch of code*/
}

它永远不会到达那里。更令人沮丧的是,如果我将 ImageButton 替换为

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'/>

它完美地工作。ImageButton 有问题吗?我错过了什么吗?

编辑 - 新信息

基本上当图像按钮被渲染时,没有href。

奇怪的 -

<input type="image" style="height: 10px; width: 10px; border-width: 0px;" src="../Assets/Images/Misc/delete.jpg"
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton1"
name="ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton1"/>

<a
href="javascript:__doPostBack('ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton_DeleteRun','')"
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton_DeleteRun">delete</a>
4

6 回答 6

4

作为一种解决方法,您可以尝试将图像包装在 LinkBut​​ton 中。

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'>
    <img src="~/Assets/Images/Misc/delete.png" /> 
</asp:LinkButton>
于 2009-11-13T03:55:57.060 回答
0

也许页面正在验证?如果是这样,请尝试将 CausesValidation=false 添加到 ImageButton。

于 2009-11-12T23:39:03.390 回答
0

您可能想尝试将 OnClick 替换为 OnCommand 以查看是否可以解决问题。

于 2009-11-12T23:44:34.677 回答
0

愚蠢的问题 - 但是 ImageUrl 渲染的是有效图像还是 red-x?

于 2009-11-12T23:49:38.663 回答
0

将两种链接类型都放在页面中,然后在结果页面上“查看源代码”。这可能会给你一些关于正在发生的事情的线索。它可能以ImageButtonJavaScript 或 CSS 搞砸的方式呈现。

于 2009-11-13T00:05:30.963 回答
0

如何在 OnClick 中获取命令参数?你有一个 EventArgs。OnCommand 处理程序具有包含 CommandName 和 CommandArguments 的 CommandEventArgs:

protected void image_Command(object sender, CommandEventArgs e)
{
}

使用 OnCommand 是有意义的。

于 2009-11-13T02:17:21.253 回答