2015-12-14 76 views
0

我遇到了一個有趣的問題。爲什麼複選框沒有保持它的價值?

我有一個gridview內的複選框(這是MODAL內)。在CLosingModal事件我正在提取複選框,但它顯示FALSE,即使我檢查True。

爲什麼?

<asp:TemplateField HeaderText="Conveyed ?"> 
    <ItemTemplate> 
     <asp:CheckBox ID="chkBoxIsConveyed" runat="server" Checked='<%# Convert.ToBoolean(Eval("IsConveyed")) %>' /> 
     </ItemTemplate> 
</asp:TemplateField> 

的.cs

protected void btnCloseModal_Click(object sender, EventArgs e) 
    { 
     mdlLastHearingDates.Hide(); 

     UpdateIsConveyed(); 

    } 

public void UpdateIsConveyed() 
    { 
     foreach (GridViewRow r in grdViewLastHearingDates.Rows) 
     { 
      int CaseHearingID = Convert.ToInt32(r.Cells[0].Text); 
      CheckBox chkBox = r.FindControl("chkBoxIsConveyed") as CheckBox; 

      MngCaseHearings.UpdateCasesIsConveyed(CaseHearingID, chkBox.Checked); 
     } 
    } 

我調試和它調用的函數。

+0

嘗試顛倒你所做的一切。首先更新您的數據,然後隱藏模式。 – Prabhat

+0

好吧,等待先生,我馬努 –

+0

對不起,先生,但沒有運氣:/ –

回答

0

嘗試將AutoPostBack值設置爲true,我相信在您選中複選框時,它不會觸發事件來更新模型。欲瞭解更多信息,您可以參考https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.autopostback(v=vs.110).aspx

+0

不,它不是真的,它確實觸發了事件並仔細閱讀了我的問題 –

+0

我假設您的意思是UpdateIsConveyed()事件?但這不是我想說的,我的意思是複選框檢查事件。好的,讓我進一步解釋一下。您將該值綁定到UI(客戶端腳本),並且您希望從代碼隱藏(服務器端腳本)獲取更新的值,然後在執行選中複選框操作時需要將值發回服務器,因此,您需要將AutoPostBack屬性添加到您的複選框並將其設置爲true。 – Steammike

相關問題