【问题标题】:dropdownlist value not show in code behind下拉列表值未显示在后面的代码中
【发布时间】:2017-09-11 11:22:55
【问题描述】:

我在 asp:dropdownlist 中有一些项目列表,但是当我想使用以下方法读取值时:

string avalue=ddl.SelectedItem.Value;

它显示一个错误说:对象引用未设置为对象的实例。 ddl 项=null。 但我使用 Javascript 警报检查它,它正确显示值。 请帮忙。

更新

在 HTML 中

<asp:DropDownList ID="ddlJTM" runat="server" Width="150px" ></asp:DropDownList>

在 JavaScript 中

function test() {
    alert(document.getElementById("<%=ddlJTM.ClientID%>").value);
        }

在 C# 中

string value = ddlJTM.SelectedItem.Value;

【问题讨论】:

  • 您可以发布您检查值的方法吗?还有标记 aspx 中下拉列表的名称是什么
  • 每当您尝试使用 javascript 更新服务器控件的值时。在这种情况下,客户端只能访问值,而不是后面的代码
  • 把 Page_Load 和数据绑定也发给你
  • 在你的 asp 代码中,ID = "ddlJTM",但是在你后面的代码中是指 ddlJiaTM ??是不是id错了?

标签: javascript c#


【解决方案1】:

如果您在 Page_Load 中进行数据绑定,那么您实际上也是在重置 SelectedItem。

您应该将 Page_Load 中存在的任何绑定代码包装在 if(!IsPostBack) 块中。

 if(!Page.IsPostBack)
 {

// Your binding code here ...

 }

【讨论】:

  • 我在选择了某些条件的情况下从后面的按钮单击代码中绑定数据,因此我无法在 page_load 中绑定它
  • 每次您选择的值更改都会调用回发方法,因此 SelectedItem 将变空,您必须编写 bind insdie if(!Page.IsPostBack) { }
  • 我按照建议尝试了,但还是一样
  • 尝试所有建议后,我只能使用 EnableEventValidation="false" 解决它
猜你喜欢
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 2011-09-24
  • 2013-05-28
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
相关资源
最近更新 更多