我在ASP.NET GridView中有以下内容:
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ibtnDown" runat="server" ToolTip="Down" CommandName="Down"
ImageUrl="~/images/arrow.png" Width="16px" Height="16px"
CommandArgument="<%# Container.DataItemIndex %>" />
</ItemTemplate>
</asp:TemplateField>
它只是一个图像按钮,单击时会引发GridView的RowCommand事件。它非常方便,它允许我使用CommandName和CommandArgument来确定单击的按钮以及单击它的行。
但是,我发现.NET ImageButton的局限性在于它无法显示CSS精灵以便在鼠标悬停时更改图像。至少我无法让它发挥作用,但当然这并不妨碍某种可能的方式。
无论如何,我想使用标准的HTML按钮标签,因为我知道如何让它与我的精灵一起工作。
<button name="btnDown" id="btnDown" type="submit" class="downArrow"></button>
但是我不知道该怎么做是让按钮引发回发并引发RowCommand事件并仍允许我以某种方式访问CommandArgument和CommandName参数。
答案 0 :(得分:1)
您是否考虑过使用按钮字段来执行您想要执行的操作?
答案 1 :(得分:1)
只需使用(original post here):
<asp:LinkButton ID="LinkButton1" runat="server">
<div class="sprite-box_mac_osx_disc_button" />
</asp:LinkButton>
当然使用自己的css,包括所有宽度,高度,背景和背景位置。并将Command和CommandArgument添加到LinkButton。
答案 2 :(得分:1)
正确我首先使按钮成为服务器控件,然后使用其各种属性作为commandName和CommandArgument的替代。另外,我会使用OnServerClick事件代替rowCommand。我最后会使用sender对象将其解析为hmt按钮并从其属性中提取值。我觉得我迷路了。
<button runat="server" name="Down" id="btnDown" title="<%# Container.DataItemIndex %>" type="submit" class="downArrow" OnServerClick="ClickMe"></button