Обратная передача с использованием кнопки в GridView - PullRequest
0 голосов
/ 20 января 2012

У меня есть следующее в 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>

Это просто кнопка изображения, которая при нажатии вызывает событие RowCommand для GridView. Это очень удобно тем, что позволяет мне использовать CommandName и CommandArgument для определения кнопки, по которой была нажата кнопка, и по какой строке она была нажата.

Однако я считаю, что .NET ImageButton ограничен в том, что он не может отображать спрайты CSS, чтобы изменить изображение при наведении курсора. По крайней мере, я не мог заставить его работать, но, конечно, это не исключает того, каким образом это возможно.

В любом случае, я бы хотел использовать стандартный тег HTML-кнопки, потому что я знаю, как заставить его работать со своими спрайтами.

<button name="btnDown" id="btnDown" type="submit" class="downArrow"></button>

Но что я не знаю, как это сделать, так это заставить кнопку вызвать обратную передачу и вызвать событие RowCommand, и все же позволить мне каким-то образом получить доступ к параметрам CommandArgument и CommandName.

Ответы [ 3 ]

1 голос
/ 20 января 2012

Просто используйте ( оригинальный пост здесь ):

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

Конечно, используйте свой собственный CSS со всей шириной, высотой, фоном и фоновой позицией.И добавьте Command и CommandArgument к LinkButton.

1 голос
/ 20 января 2012

Верно, я бы сначала сделал кнопку серверным элементом управления, а затем использовал бы ее различные свойства в качестве альтернативы commandName и CommandArgument.Кроме того, я бы использовал событие OnServerClick вместо rowCommand.Я бы, наконец, использовал объект sender, чтобы проанализировать его с помощью кнопки hmt и извлечь значения из его свойств.Я думаю, что я потерялся.

<button runat="server" name="Down" id="btnDown" title="<%# Container.DataItemIndex %>" type="submit" class="downArrow" OnServerClick="ClickMe"></button
1 голос
/ 20 января 2012

Рассматривали ли вы использование поля кнопки для выполнения действия, которое вы хотите сделать?

Взгляните на следующую ссылку ButtonFields в GridView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...