如何从ASP.NET中的转发器控件中获取选定的行ID [英] How to get selected row ID from repeater control in ASP.NET
本文介绍了如何从ASP.NET中的转发器控件中获取选定的行ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新到ASP.NET,我必须使用转发器控件来显示酒店名称列表来自 SQL Server数据库。现在我希望获取来自转发器控件的所选行的ID。我怎么能做那个?我用谷歌搜索但不能成功。
Hotellist.aspx代码:
< 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 >
代码落后:
protected void rpHotelList_ItemCommand( object source,RepeaterCommandEventArgs e)
{
// 想知道如何获取ID
}
我尝试过:
我用google搜索它但找不到解决方案。
解决方案
Repeater
没有那个选择。您可以做的最好是在LinkButton
上设置CommandArgument
属性,看看它是否在RepeaterCommandEventArgs.CommandArgument
property:
< asp:LinkButton ID =LinkButton1CssClass =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:LinkButton ID =LinkButton1CssClass =list-group-itemrunat =server><%#Eval(HotelName)%> <%#Eval(HotelID)%>< / asp:LinkButton>
< / 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.
解决方案
TheRepeater
doesn't have that option. The best you can do is to set theCommandArgument
property on theLinkButton
, and see if it comes through in theRepeaterCommandEventArgs.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 theListView
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屋!
查看全文