У меня есть страница, на которой можно выбирать из динамически генерируемых кнопок.Код ASPX выглядит следующим образом:
<div>
<asp:Repeater ID="rptrHalls" runat="server" OnItemCommand="Choose_Hall">
<ItemTemplate>
<asp:Button ID="btnChooseHall" runat="server"
CommandName="<%# Container.DataItem %>" Text="<%# Container.DataItem %>"
/>
</ItemTemplate>
</asp:Repeater>
</div>
Когда страница загружена, для генерации кнопок используется следующий код:
' Show which halls they are eligible for.
Dim dbHalls As New pbu_housingDataContext
'Dim gender As String = Session("gender").ToString
Dim selectedHalls = (From sh In dbHalls.Rooms _
Where sh.gender = Session("gender").ToString _
Where sh.current_occupancy < sh.max_occupancy _
Where sh.is_available = True _
Select sh.building_name).Distinct()
rptrHalls.DataSource = selectedHalls
rptrHalls.DataBind()
Когда пользователь нажимает на динамически генерируемую кнопку,запускается следующий код:
Public Sub Choose_Hall(ByVal Sender As Object, ByVal e As RepeaterCommandEventArgs)
Session("Hall") = e.CommandName.ToString
Response.Redirect("select_room.aspx")
End Sub
Когда я впервые попытался запустить код, я получил сообщение об ошибке «Недопустимый аргумент обратной / обратной передачи».Я установил на странице ASPX свойство enableEventValidation = "false" и попытался запустить его снова.Она прекрасно генерирует страницу, но когда я нажимаю на динамически генерируемую кнопку, она действует так, как будто она загружает что-то, а затем просто возвращает меня к select_hall.aspx (на странице весь этот код один), когда (как вы можете видеть выше)мне нужно выбрать select_room.aspx.