Повторитель не позволит мне получить доступ к элементам управления, таким как кнопки, выпадающий список и т. Д. - PullRequest
1 голос
/ 20 мая 2011

Я использую ретранслятор ListOfArticles, и внутри него есть элементы управления, такие как ddlSizes и btnSelectArticle.Обычно вы можете просто дважды щелкнуть элемент управления и на странице aspx.vb вы можете указать действие.Я что-то слышал о Findcontrol, но не могу понять или найти много информации, которую я понимаю.Я не хочу звучать как задница, но я действительно предпочел бы помощь для страницы aspx.vb, а не в C # или Javascript.

Пример того, что я пытаюсь сделать, когда вынажали btnSelectArticle на ярлык lblSelection получаются следующие значения Amount: txtAmount - Size: ddlSizes.SelectedValue.

<asp:Repeater ID="rptListOfArticles" runat="server" DataSourceID="objdsArticleList">

<asp:DropDownList ID="ddlSizes" runat="server" AutoPostBack="True" DataSourceID="objdsSizes"  DataTextField="SizeName" DataValueField="SizeID" OnSelectedIndexChanged="ddlSizes_SelectedIndexChanged" />

<asp:Button ID="btnSelect" runat="server" Text="Select" OnClick="btnSelect_OnClick" />

<asp:Label ID="lblSelection" runat="server" Text=""></asp:Label>

На странице aspx.vb я могу выбрать только это и мои элементы управления, такие как ddlSizes и btnSelectне распознаются.

Protected Sub rptListOfArticles_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rptListOfArticles.ItemCommand
End Sub

Любая помощь в поиске решения была бы отличной!

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Что вам нужно сделать, это использовать метод FindControl, чтобы найти определенный элемент управления в выбранном элементе повторителя.

таким примером будет (в методе ItemCommand)

Dim lblSelection as Label = CType(e.Item.FindControl("lblSelection"), Label)
lblSelection.Text = "Your Text"

Редактировать ** Ответить на ваши вопросы в комментариях:

Да, чтобы получить доступ к SelectedValue dDlSize DropDown, вам нужно создать это:

Dim ddlSize As DropDownList = Ctype(e.Item.FindControl("ddlSize"), DropDownList)

Повторитель будет знать, когда вызывать этот метод, когда в репитере нажимаются какие-либо кнопки. Добавьте CommandName к своим кнопкам, чтобы затем можно было контролировать, что происходит в методе ItemCommand.

, например

<asp:Button id="btnDoSomething" runat="server" text="Run ItemCommand" CommandName="Command1" />

В ItemCommand используйте код:

If e.CommandName = "Command1" Then
    ' run your code
End If
1 голос
/ 20 мая 2011

Вы можете обработать событие выпадающего списка в ItemCommand Event. Понятие «всплывающее» событие происходит здесь, на самом деле дочерний элемент управления создает пузырь даже до его родительского элемента управления, то есть повторителя, так что вы можете в конечном итоге обработать его в родительском элементе управления для более подробной информации ЗДЕСЬ вы будете иметь глубокое понимание всех событий повторителя

...