我有一个带有下拉列表的中继器。当用户更改其索引时,我希望标签可以更改其值。 (ddlSizes 值来自 MySQL DB)
尺寸.aspx
<asp:DropDownList ID="ddlSizes" runat="server" AutoPostBack="True" DataSourceID="objdsSizes" DataTextField="SizeName" DataValueField="SizeID" />
<asp:Label ID="lbldummy" runat="server" Text=""></asp:Label>
Sizes.aspx.vb
Protected Sub ddlSizes_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlSizes.SelectedIndexChanged
lbldummy = ddlSizes.value
End Sub
但是 ddlSizes.SelectedIndexChanged 无法识别。所以lbldummy
的值不会改变。
有什么建议吗?谢谢。
最佳答案
您需要为 DropDownList
创建处理程序,其中您需要具有将发送者转换为 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
然后在您的 ddlSizes DropDownList 上添加 OnSelectedIndexChanged="ddlSizes_SelectedIndexChanged"
并确保其已设置 AutoPostBack="True"
关于asp.net - 中继器中的下拉列表,选定的索引更改后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6061857/