Получение строки индексирует от щелчка ImageButton в GridView

преобразовать строку в дату, а затем использовать ее в сравнении, выполнить условную фильтрацию, если необходимо

DateTime.TryParse(searchclientregdate, out dateVar)



var find = fg.Users
    .Where(r => r.CreationDate<= dateVar && r.CreationDate>= dateVar)
    .ToList();
.
6
задан Jeffrey 21 January 2009 в 19:03
поделиться

5 ответов

Вместо цикличного выполнения через строки можно использовать это

<asp:ImageButton runat="server" id="ibtn1" ... RowIndex='<%# Container.DisplayIndex %>' 
OnClick="button_click"/>

...

protected void button_click(object sender, EventArgs e){
    ImageButton ibtn1 = sender as ImageButton;
    int rowIndex = Convert.ToInt32(ibtn1.Attributes["RowIndex"]);

    //Use this rowIndex in your code
}
13
ответ дан 8 December 2019 в 02:47
поделиться

Бросьте отправителя в ImageButton, затем бросает NamingContainer кнопки с изображением к строке:

VB:

Dim btn as ImageButton = CType(sender, ImageButton)

Dim row as GridViewRow = CType(btn.NamingContainer, GridViewRow)

C#:

ImageButton btn = (ImageButton)sender;

GridViewRow row = (GridViewRow)btn.NamingContainer;
12
ответ дан 8 December 2019 в 02:47
поделиться

Самый легкий способ, которым я нашел, состоит в том, чтобы использовать событие Command по событию Click и отправить идентификатор объекта как аргумент команды.

Вы могли также циклично выполниться по строкам в GridView и сравнить ImageButton в строке к sender аргумент в Вашем событии Click.

2
ответ дан 8 December 2019 в 02:47
поделиться

Согласился бы с bdukes, что самый простой вариант - использовать CommandArgument. Свяжите уникальный идентификационный номер ваших данных с этим свойством, затем обработайте событие _RowCommand.

Например:

<asp:TemplateField >
    <HeaderStyle Width="20" />
    <ItemTemplate>
        <asp:ImageButton ImageUrl="images/icons/iCal.png" CommandArgument='<%# Eval("Event_ID") %>' ToolTip="iCal" runat="server" Height="18" Width="18" />
    </ItemTemplate>
</asp:TemplateField>


Protected Sub gv_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gv.RowCommand

   e.CommandArgument    'use this value in whatever way you like

End Sub
3
ответ дан 8 December 2019 в 02:47
поделиться

Это очень хороший трюк. У меня есть еще одна хитрость. Вы можете попробовать ...

 protected void userGridview_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {
            GridViewRow rowSelect = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
            int rowindex = rowSelect.RowIndex;
         }
    }

Это тоже хороший метод.

3
ответ дан 8 December 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: