Html“选择”控制总是将所选索引返回为 0
我已在 aspx 页面上放置了 HTML“选择”控件,并且它的项目(选项)是使用 javasvript 动态加载的。下拉列表中的项目正确显示在网页上。但是,当我从下拉列表中选择任何项目时,它所选择的索引不会在 aspx.cs 文件中返回。事实上,它显示所选索引为 0,“Select”html 控件的大小为 -1。 我已在 body 标记中插入了 javascript(在下拉列表中插入项目)。我还尝试在 Body onload 上调用 javascript 函数。但这没有帮助。 请指教。
I have placed HTML 'Select' control on aspx page and it's items(options) are loaded dynamically using javasvript. The items in dropdown appear properly on web page. But when I select any item from dropdown, it's selected index is not returned in aspx.cs file. In fact, it shows selected index as 0 and size of 'Select' html control as -1.
I have inserted the javascript(which inserts items in dropdown) in body tag. I also tried by calling javascript function on Body onload. But it didn't help.
Please advice.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于您通过 javascript 填充了列表,因此这些值不在 ViewState 中。因此,当它发回时,后面的代码并不知道列表中的值。
您可以使用 Request.Form["ddWhatever"] 来获取所选项目的值,但是当您将其填充到客户端时,您会失去服务器端功能。
Because you populated the list via javascript, the values aren't in ViewState. So, when it posts back, the code behind isn't aware of the values that are on the list.
You could use Request.Form["ddWhatever"] to get the value of the selected item, but you lost the server side capabilities when you populated it on the client.
这是正常行为。
为什么不从服务器端绑定值?使用
而不是That's a normal behavior.
Why not bind the values from the server side? Use an
<asp:DropDownList>
instead of<select>
, give it an ID, and populate it from your .NET code before returning it to the client (Possibly on Page_Load, and make sure you check for !IsPostBack before binding)