2016-11-25 66 views
0

我已經將下拉值保存在數據庫和視圖狀態中,但是在頁面加載時,它並沒有被加載。 能有人告訴我我要去哪裏錯了下拉值在ViewState中沒有保存

protected void Page_Load(object sender, System.EventArgs e) 
{ 
if (ViewState["ddSelectedValue"] != "0") 
     { 
      dd_RuleFor.SelectedValue = Convert.ToInt32(ViewState["ddSelectedValue"]).ToString(); 
     } 
} 

protected void btn_Save_Click(object sender, System.EventArgs e) 
{ 
    if(chkRuleApprover.Checked == true && dd_RuleFor.SelectedValue != "0") 
     { 

      strSQL = "update UserFile set Rule_Approval_Selection=" + dd_RuleFor.SelectedItem.Value + " where UID=" + intUserID; 
      objCmd = new System.Data.SqlClient.SqlCommand(strSQL, oconn); 
      objCmd.ExecuteNonQuery(); 

      ViewState["ddSelectedValue"] = dd_RuleFor.SelectedValue.ToString(); 
     } 
} 
+0

你可以分享你的硬編碼結合價值代碼? –

+0

Wy是你用你自己的'ViewState'來保存'SelectedValue'嗎?通常asp.net ViewState會爲你做這個。 – VDWWD

回答

0

請確保您填寫的價值觀下拉首先在頁面加載和不是使用以下條件後:

if(!Page.Ispostback()) 
{ 
if (ViewState["ddSelectedValue"] != "0") 
    { 
     dd_RuleFor.SelectedValue = Convert.ToInt32(ViewState["ddSelectedValue"]).ToString(); 
    } 
} 
+0

是的,我已經通過在aspx – sumedha

+0

中硬編碼來填充dd值,那麼你必須使用上面的page.Ispostback()條件,你可以請張貼設計頁面+代碼頁。另外,你有使用更新面板? –

+0

此外,您不必將視圖狀態值轉換爲int32,然後再轉換回字符串。避免拳擊 - 不行 –