ASP.net GridView: получить строку LinkItem - PullRequest
0 голосов
/ 11 марта 2012

Я хочу показать ссылку «Удалить» в GridView для зарегистрированных пользователей , поэтому я использую templateField:

    <asp:GridView ID="GridView1" runat="server" AllowSorting="True" OnSorting="GridView_Sort">
    <Columns>
        <asp:TemplateField HeaderText="Control">
        <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" onClick="deleteEntry()"  Text="Delete"></asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>  
    </Columns>
    </asp:GridView>

Теперь в моей функции deleteEntry () я могу узнать что-либоо строке, в которой была нажата ссылка «Удалить»?Как получить, например, rowindex?

1 Ответ

1 голос
/ 11 марта 2012

Вы можете подойти к этому немного по-другому. Видите ли, когда элемент управления помещается внутри вида сетки, любое событие, вызванное этим элементом управления, также вызывает RowCommand в GridView.

Чтобы получить то, что вы хотите, вы можете затем добавить CommandName и CommandArgument к вашему LinkButton и затем перехватить его в RowCommand GridView.

<asp:LinkButton id="LinkButton1" runat="server" commandName="LinkButtonClicked" commandArgument='Eval("myObjectID")' />

где myObjectID - имя столбца идентификатора вашего объекта, к которому вы привязываете сетку.

Тогда

void GridView1_RowCommand( object sender, GridViewCommandEventArgs e )
{
    if ( e.CommandName == "LinkButtonClicked" )
    {
        string id = e.CommandArgument; // this is the ID of the clicked item
    }
}
...