2013-10-04 33 views
0

我遇到dropDown所选值的问题。.net dropDownList在IE中回发后丢失值

代码工作得很好,除了当我改变IE兼容模式,下拉不保留选定的值,并回到第一项,我不能让它工作了。

当我在服务器上更改某些内容时,IIS中的文件或配置,一切正常,直到我再次更改de兼容性模式。

我试着把选定的值放在会话中保持它,但它不工作。我真的尝试了一切,事先感谢。

这里的ASP代码:

<asp:DropDownList ID="ddlFiltre" runat="server" AutoPostBack="True" EnableViewState="true" Width="100%" OnSelectedIndexChanged="ddlFiltre_SelectedIndexChanged"> 
       </asp:DropDownList> 

这里是后面的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    } 
protected void Page_PreRender(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     ddlFiltre.Items.Clear(); 
     ddlFiltre.Items.Add(new ListItem(GetLibelle("item1"), "-1")); 
     ddlFiltre.Items.Add(new ListItem(GetLibelle("item2"), "0")); 
     ddlFiltre.Items.Add(new ListItem(GetLibelle("item3"), "1")); 
     ddlFiltre.Items.Add(new ListItem(GetLibelle("item4"), "2")); 
     GetPermission(); 

    } 
    else 
    { 

     ddlFiltre.SelectedValue = Session["ddl_index"].ToString(); 
    } 



    LoadPageControls(); 


} 



private void GetPermission() 
{ 

} 

private void LoadPageControls() 
{ 
    if (LoggedUser != null) 
    { 


     if (ddlFiltre.SelectedValue == "-1") 
     { 
      // Load info in table 
     } 
     else 
     { 
      // Load other info in table 
     } 



    } 
} 


protected void ddlFiltre_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Session["ddl_index"] = ddlFiltre.SelectedValue; 
} 

回答

1

是的,这是一个善意的错误。回传失败。

阅读thisthis文章的修复。

+0

谢谢,这两篇文章的唯一问题是它在IE 10中工作正常,只有当我把兼容模式。并__doPostback工作正常 – GregM

+0

我了解页面帖子。但ddlFiltre_SelectedIndexChanged事件是否触发?如果没有,__doPostback实际上不起作用,它只是看起来这样。 –

+0

我真的不知道事件是否会触发,因为错误只发生在应用程序在服务器上时,当我正在开发我的电脑,而我在本地主机时,我没有错误 – GregM