我在radgridview columnn中构建了一个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>
答案 0 :(得分:4)
作为一种解决方法,您可以尝试在LinkButton中包装图像。
<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>
答案 1 :(得分:0)
也许页面正在验证?如果是这样,请尝试将CausesValidation = false添加到ImageButton。
答案 2 :(得分:0)
您可能想尝试用OnCommand替换OnClick,看看是否能解决问题。
答案 3 :(得分:0)
愚蠢的问题 - 但ImageUrl是渲染有效图像还是red-x?
答案 4 :(得分:0)
将两种链接类型放在页面中,然后在结果页面上显示“查看源”。这可能会为您提供有关正在发生的事情的线索。它可能以JavaScript或CSS搞乱的方式呈现ImageButton
。
答案 5 :(得分:0)
如何在OnClick中获取命令参数?你有一个EventArgs。 OnCommand处理程序包含CommandEventArgs,其中包含CommandName和CommandArguments:
protected void image_Command(object sender, CommandEventArgs e)
{
}
使用OnCommand是有意义的。