转发器中的下拉列表,选定的索引更改不起作用

Cus*_*omX 2 vb.net asp.net repeater selectedindexchanged drop-down-menu

我有一个带有下拉列表的转发器.当用户更改其索引时,我希望标签更改其值.(ddlSizes值来自MySQL DB)

Sizes.aspx

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

<asp:Label ID="lbldummy" runat="server" Text=""></asp:Label>
Run Code Online (Sandbox Code Playgroud)

Sizes.aspx.vb

Protected Sub ddlSizes_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlSizes.SelectedIndexChanged
    lbldummy = ddlSizes.value
End Sub
Run Code Online (Sandbox Code Playgroud)

但是无法识别ddlSizes.SelectedIndexChanged.所以价值lbldummy不会改变.

有什么建议?谢谢.

Tim*_*mes 7

您将需要为此创建处理程序DropDownList,在此期间您需要具有将发送方转换为a DropDownList然后获取父控件并将其转换为的控制器的代码RepeaterItem.然后,您可以引用其中的任何其他控件RepeaterItem

Public Sub ddlSizes_SelectedIndexChanged(sender As Object, e As EventArgs)
    Dim ddlSizes As DropDownList = DirectCast(sender, DropDownList)
    Dim ri As RepeaterItem = DirectCast(ddlSizes.Parent, RepeaterItem)
    Dim lbldummy As Label = DirectCast(ri.FindControl("lbldummy"), Label)
    lbldummy.Text = ddlSizes.SelectedValue
End Sub
Run Code Online (Sandbox Code Playgroud)

然后在你的ddlSizes DropDownList上添加 OnSelectedIndexChanged="ddlSizes_SelectedIndexChanged"并确保它设置了AutoPostBack ="True"