Muhammad Ibrar UET, Lahore Ответов: 1

Как получить выбранный идентификатор строки из элемента управления ретранслятором в ASP.NET


I am new to ASP.NET, I have to use repeater control to show Hotels Names List from SQL Server Database. Now I want to get the ID of the selected row from repeater control. How can I do that? I have googled it but could not succeed.

Hotellist.aspx code:

<asp:Repeater ID="rpHotelList" runat="server" OnItemCommand="rpHotelList_ItemCommand">
   <ItemTemplate>
       <asp:LinkButton ID="LinkButton1" CssClass="list-group-item" runat="server"><%#Eval("HotelName") %> <%#Eval("HotelID") %></asp:LinkButton>


   </ItemTemplate>
</asp:Repeater>
code behind:

 protected void rpHotelList_ItemCommand(object source, RepeaterCommandEventArgs e)
 {
   //want to know how to get ID 
 }


Что я уже пробовал:

Я погуглил его, но не смог найти решения.

1 Ответов

Рейтинг:
4

Richard Deeming

То Repeater у него нет такой возможности. Лучшее, что вы можете сделать, это установить CommandArgument недвижимость на LinkButton, и посмотреть, не пройдет ли он через RepeaterCommandEventArgs.CommandArgument собственность:

<asp:LinkButton ID="LinkButton1" CssClass="list-group-item" runat="server" CommandArgument='<%# Eval("HotelID") %>'>

protected void rpHotelList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    int hotelId;
    if (int.TryParse((string)e.CommandArgument, out hotelId))
    {
        // Use the ID here...
    }
}


В качестве альтернативы попробуйте использовать то ListView контроль[^] вместо:
<asp:ListView ID="rpHotelList" runat="server" DataKeyNames="HotelID" OnItemCommand="rpHotelList_ItemCommand">
<ItemTemplate>
    <asp:LinkButton ID="LinkButton1" CssClass="list-group-item" runat="server"><%#Eval("HotelName") %> <%#Eval("HotelID") %></asp:LinkButton>
</ItemTemplate>
</asp:ListView>

protected void rpHotelList_ItemCommand(object sender, ListViewCommandEventArgs e)
{
    DataKey key = rpHotelList.DataKeys[e.Item.DisplayIndex];
    int hotelId = (int)key["HotelID"];
    // Use the ID here...
}


Karthik_Mahalingam

5

Muhammad Ibrar UET, Lahore

Спасибо Ричарду Димингу, ты решил мою проблему.