2012-01-19 43 views
0

在ASP.NET的GridView我有以下使用按钮:回传在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的参数。

回答

1

右键我会先让按钮成为服务器控件,然后使用它的各种属性作为commandName和CommandArgument的替代。另外我会使用OnServerClick事件来代替rowCommand。我最后会使用sender对象将它解析为一个hmt按钮,并从其属性中提取这些值。我想我已经迷路了。

<button runat="server" name="Down" id="btnDown" title="<%# Container.DataItemIndex %>" type="submit" class="downArrow" OnServerClick="ClickMe"></button 
+0

这工作得很好!这有点不合常规,并且可能无法在所有情况下工作(例如,实际需要title属性用于其预期用途时),但它确实完成了工作。谢谢! – Jagd

1

只要使用(original post here):

<asp:LinkButton ID="LinkButton1" runat="server"> 
    <div class="sprite-box_mac_osx_disc_button" /> 
</asp:LinkButton> 

当然可以用自己的CSS与所有宽度,高度,背景和背景位置。然后将Command和CommandArgument添加到LinkBut​​ton。

+0

感谢您的帮助。这个解决方案可能会起作用,但我选择了nuux提供的解决方案,因为它更接近我的想法,不幸的是,我没有太多时间来测试各种答案。所以,这只是一个通知给稍后引用这个问题的其他人,这个答案可能工作得很好! – Jagd