ASP Repeater コントロールを試しています。
ここで、3 つのラベル (リピーター内) を使用してデータベースの値を表示しています。
また、ボタンのクリックイベントで1つのラベルの値を取得できます(これもリピーター内にあります)
しかし、
同じボタンのクリックで 3 つのラベルすべての値を取得したい
私のaspxファイルは次のとおりです。
<asp:Repeater ID="rptrHotel" runat="server"
onitemcommand="rptrHotel_ItemCommand">
<HeaderTemplate>
<table width="500px" class="bidTab">
<tr class="bidHeading">
<th>
Hotel Name
</th>
<th>
Room Type
</th>
<th>
Bid
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblHotelName" runat="server" Text='<%#Eval("hotel_name")%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblRoomType" runat="server" Text='<%#Eval("room_type_name")%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblBaseBidAmt" runat="server" Text='<%#Eval("base_bid_ammount")%>'></asp:Label>
</td>
<td>
<asp:Button ID="btnBidNow" runat="server" Text="Bid Now" CommandName="BidNow" CommandArgument='<%#Eval("hotel_name") %>'/>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
aspx.csファイルで試したコードは次のとおりです。
protected void rptrHotel_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "BidNow")
{
Label hotel_name = e.Item.FindControl("lblHotelName") as Label;
hotel_name.Text = e.CommandArgument.ToString();
Label room_type_name = e.Item.FindControl("lblRoomType") as Label;
room_type_name.Text = e.CommandArgument.ToString();
Label base_bid_ammount = e.Item.FindControl("lblBaseBidAmt") as Label;
base_bid_ammount.Text = e.CommandArgument.ToString();
lblhotelresult.Text = lblhotelresult.Text;
lblRoomResult.Text = room_type_name.Text;
lblBaseamtresult.Text = base_bid_ammount.Text;
//Session["hotel_name"] = hotel_name.Text;
//Session["room_type_name"] = room_type_name.Text;
//Session["base_bid_ammount"] = base_bid_ammount.Text;
//Response.Redirect("BidRoomCustomer.aspx");
}
}
何ができるかを提案し、3 つのラベルすべてにアクセスするのを手伝ってください。