.NET FormView中的DropDownList第一次完美加载,再也不会

时间:2012-01-05 14:56:13

标签: c# asp.net drop-down-menu formview

我构建了一个DataTable,并用国家/地区缩写和国家/地区扩展填充它。我将其作为DropDownListFormView控件的DataSource。要查看此FormView,用户单击表单上的按钮。 DropDownList始终在第一次正确填充 。在处理了这个FormView(向数据存储添加记录)之后,用户必须单击他之前单击的相同按钮才能添加另一条记录,但DropDownList 从不填充。我已确认在每次调用时都会填充此列表的DataTable。当然,代码也完全一样。

表单代码如下所示:

<asp:DropDownList ID="lstBornIn" runat="server" />

并且代码隐藏看起来像这样:

  tblCountry = (DataTable) Session["tblCountry"];
DropDownList lstBorn = (DropDownList) 
FormView1.FindControl("lstBornIn");
lstBorn.DataSource = tblCountry;
lstBorn.DataValueField = "Abbrev";
lstBorn.DataTextField = "Country";
lstBorn.DataBind();

如上所述,这是第一次完美,但永远不会再次。它似乎是一个绑定问题,因为后续调用时Items列表为空。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我放弃了这一点,只想报告我为解决这个问题所采取的其他措施。

有人认为我看到的问题只发生在Visual Studio中,所以我在IIS7上建立了相关文件,并尝试使用三种主流浏览器。所有都失败了。

对我来说最令人难以置信的事情是,当我使用VS调试器查看其中一个列表时,它将所有67个项目整齐地隐藏起来。它只是不会显示它们。

我的解决方法很简单:对ASPX文件中的列表项进行硬编码。看起来很丑,但工作得很好。

我会留意那些暗示不同方法的东西。

答案 1 :(得分:0)

是否为页面或DropDownList或DDL层次结构中的其他控件关闭了ViewState?如果是这样,您将要么重新打开它,要么在回发时重新绑定。