2012-01-09 2 views
1

항목 목록과 true/false 플래그가 포함 된 데이터 소스에 바인딩 된 데이터 목록을 포함하는 양식이 있습니다. true의 경우, myCheck 확인란이 선택되어 :C# Checkbox.Checked 속성 변경 내용 반영 안 함

<form id="myForm" runat="server"> 
    <asp:Button ID="save" runat="server" Text="Save" OnClick="save_Click" /> 
    <br /> 
    <asp:DataList runat="server" id="myList" onitemdatabound="myList_ItemDataBound"> 
    <HeaderTemplate> 
     <th>Item Name</th> 
     <th id="thCheck" runat="server">Check?</th> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <td id="tdName" runat="server"><%# Eval("Name") %></td> 
     <td runat="server"><asp:CheckBox id="myCheck" runat="server" Checked="false" /></td> 
    </ItemTemplate> 
</asp:DataList> 

저장 클릭, 나는 검사 한 어떤 항목을보고 싶어요. 나는 DataList에있는 항목을 반복하려면 다음을 사용하고 있습니다 :

protected void save_Click(Object sender, EventArgs e) 
{ 
    String Name; 
    Boolean omit; 

    foreach (DataListItem item in myList.Items) 
    { 
     CheckBox omitCheck = (CheckBox)item.FindControl("myCheck"); 

     if (omitCheck != null) 
     { 
      if (omitCheck.Checked == true) // This line is my problem!! 
      { 
       // do stuff 
      } 
      break; 
     } 
    } 

FindControl 그러나 값이 나는 상자의 일부를 체크 한 경우에도, 항상 false입니다, 확인 작업을 표시하고 체크 박스를 돌려줍니다. aspx 페이지에서 확인란의 값을 True로 설정하면 omitCheck.Checked이 항상 true입니다. ViewState이 비활성화되어 있지 않습니다.

나는이 점에 대해 확실하므로 분명한 대답이 있습니다.

+0

myList_ItemDataBound 함수는 어떻게 생겼습니까? 나는 그것이 필요하다고 생각합니다! 포스트 백에 입력 된 값을 덮어 쓰지 않는 IsPostback – Evert

+0

그건 고마워요. myList.DataBind() 메서드 주위에! IsPostBack 검사를 추가하면 해결됩니다. – RichardB

+0

나는 그 대답으로, 그게 도움이되어 기쁘게 생각합니다. :) – Evert

답변

5

myList_ItemDataBound 함수의 모양은 무엇입니까? 나는 그것이 필요하다고 생각합니다! 포스트 백에 입력 된 값을 무시하지 않는 IsPostback