在Page_Load事件之前未恢复Umbraco 6升级viewstate之后

时间:2014-09-03 14:12:18

标签: c# asp.net postback viewstate umbraco6

我试图将一个简单的项目从Umbraco 4.7.0部署移植到Umbraco 6.2.1部署。该项目在471中工作正常,但是当在621部署中运行时,后面的代码不会拾取任何表单值。我可以在Request.form[uniqueId]中看到值,但下拉列表的选定值为空。

控件是在OnInit事件中创建的,我尝试在Page_Load事件中获取值。

有什么明显的我在这里做错了吗?有什么明显的理由让它在621停止工作?

页面:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Search.ascx.cs" Inherits="MyApp.Search" EnableViewState="true" ViewStateMode="Enabled" %>

<form runat="server" enableviewstate="true">
  <asp:PlaceHolder ID="placeHolder" runat="server" EnableViewState="true" />
</form>

背后的代码:

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);

  DropDownList ddlCriteria = new DropDownList();
  ddlCriteria.ClientIDMode = System.Web.UI.ClientIDMode.Static;
  ddlCriteria.ID = "organizationId";
  ddlCriteria.EnableViewState = true;
  ddlCriteria.ViewStateMode = System.Web.UI.ViewStateMode.Enabled;
  ddlCriteria.Items.Clear();
  ddlCriteria.Items.Add(new ListItem("1", "1"));
  ddlCriteria.Items.Add(new ListItem("2", "2"));
  ddlCriteria.Items.Add(new ListItem("3", "3"));
  placeHolder.Controls.Add(ddlCriteria);
}


protected void Page_Load(object sender, EventArgs e)
{
  Page.MaintainScrollPositionOnPostBack = false;
  DropDownList ddlCriteria = (DropDownList)placeHolder.FindControl("organizationId");
  String organizationId = ddlCriteria.SelectedValue; // Always blank.
}

非常感谢您的帮助。

0 个答案:

没有答案
相关问题