6 asp.net
我有一个简单的下拉列表(ffg)......
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true" BackColor="LightSteelBlue" Font-Size="X-Small"
OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged1" Style="z-index: 102; left: 37px; position: absolute; top: 85px" Width="331px"
</asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)
我将数据绑定到onpageload事件...
DropDownList2.DataSource = td.DataSet
DropDownList2.DataSource = td
DropDownList2.DataTextField = td.Columns("Name").ColumnName.ToString
DropDownList2.DataValueField = td.Columns("VendorCode").ColumnName.ToString
DropDownList2.DataBind()
Run Code Online (Sandbox Code Playgroud)
还有一个 onleselectedindexchaged事件,我试图像这样检索新的价值......
Protected Sub DropDownList2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList2.TextChanged
Dim url As String = "sp_menu.aspx?sp=" & DropDownList2.SelectedValue
Session.Remove("sp")
Session("sp") = DropDownList2.SelectedValue
Session("spnm") = DropDownList2.SelectedItem.Text & " (" & DropDownList2.Text & ")"
Response.Redirect(url)
End Sub
Run Code Online (Sandbox Code Playgroud)
但无论在下拉列表中点击哪一个,它总是带来第一个值.请帮忙!
Eoi*_*ell 10
好的...一些事情......
首先
DropDownList2_TextChanged没有连接到你的DropDownList,所以除非你在代码隐藏中进行连接,否则我无法看到该事件将如何触发
第二
你在这里说这段代码
DropDownList2.DataSource = td.DataSet
DropDownList2.DataSource = td
DropDownList2.DataTextField = td.Columns("Name").ColumnName.ToString
DropDownList2.DataValueField = td.Columns("VendorCode").ColumnName.ToString
DropDownList2.DataBind()
Run Code Online (Sandbox Code Playgroud)
在您的PageLoad事件中.你有没有包裹它If Not IsPostBack,因为如果没有,那么你每次都会重新绑定,并失去你以前的选择.
当您在Page_Load中进行数据绑定时,您基本上也在重置选定项目.
您应该将Page_Load中存在的任何绑定代码包装在if(!IsPostBack)块中.
编辑:...或如果不是IsPostBack然后...结束如果在VB.NET中
你可以尝试使用
DropDownList2.SelectedItem.Value
Run Code Online (Sandbox Code Playgroud)
代替
DropDownList2.SelectedItem.Text
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24946 次 |
| 最近记录: |