如何从ASP.NET中的转发器控件中获取选定的行ID [英] How to get selected row ID from repeater control in ASP.NET

查看:59
本文介绍了如何从ASP.NET中的转发器控件中获取选定的行ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是到ASP.NET,我必须使用转发器控件来显示酒店名称列表来自 SQL Server数据库。现在我希望获取来自转发器控件的所选行的ID。我怎么能那个?我用谷歌搜索但不能成功。 

Hotellist.aspx代码:

< asp:Repeater ID = rpHotelList runat = server OnItemCommand = rpHotelList_ItemCommand >
< ItemTemplate>
< asp:LinkBut​​ton ID = LinkBut​​ton1 CssClass = list-group-item runat = server><%#Eval( HotelName%> <%#Eval( HotelID%> < / asp:LinkBut​​ton >


< / ItemTemplate >
< / asp:Repeater >
代码落后:

protected void rpHotelList_ItemCommand( object source,RepeaterCommandEventArgs e)
{
// 想知道如何获取ID
}





我尝试过:



我用google搜索它但找不到解决方案。

解决方案

Repeater 没有那个选择。您可以做的最好是在 LinkBut​​ton 上设置 CommandArgument 属性,看看它是否在 RepeaterCommandEventArgs.CommandArgument property:

< asp:LinkBut​​ton ID =LinkBut​​ton1CssClass =list-group-item runat =serverCommandArgument ='<%#Eval(HotelID)%>'> 



  protected   void  rpHotelList_ItemCommand( object  source,RepeaterCommandEventArgs e)
{
int hotelId;
if int .TryParse(( string )e.CommandArgument, out hotelId))
{
// 在此处使用ID ...
}
}





或者,尝试使用 ListView 控制 [ ^ ]相反:

< asp:ListView ID =rpHotelListrunat =serverDataKeyNames =HotelIDOnItemCommand =rpHotelList_ItemCommand> 
< ItemTemplate>
< asp:LinkBut​​ton ID =LinkBut​​ton1CssClass =list-group-itemrunat =server><%#Eval(HotelName)%> <%#Eval(HotelID)%>< / asp:LinkBut​​ton>
< / ItemTemplate>
< / asp:ListView>



 受保护 < span class =code-keyword> void  rpHotelList_ItemCommand( object  sender,ListViewCommandEventArgs e)
{
DataKey key = rpHotelList。 DataKeys [e.Item.DisplayIndex];
int hotelId =( int )key [ HotelID];
// 在此处使用ID ...
}


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 
 }



What I have tried:

I have googled it but could not find solution.

解决方案

The Repeater doesn't have that option. The best you can do is to set the CommandArgument property on the LinkButton, and see if it comes through in the RepeaterCommandEventArgs.CommandArgument property:

<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...
    }
}



Alternatively, try using the ListView control[^] instead:

<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...
}


这篇关于如何从ASP.NET中的转发器控件中获取选定的行ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆