2013-03-28 5 views
3

데이터베이스의 쿼리에서 DataField에 바인딩 된 CheckBoxField 열이있는 ASP.NET의 GridView가 있습니다. 값이 false이면 체크 할 수 있어야하고, 값이 true이면 체크하지 않아도됩니다.CheckedFieldBoxField의 기본 부울 값 설정

대다수의 확인란 컨트롤이 작동하는 방식에 대해 완전히 비공식적 인 것으로 조금 비표준이지만이 방법이 있습니까?

답변

2

여기에는 여러 가지 방법이 있습니다. 이것을 시도 할 수 있습니다 :

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     foreach (Control ctrl in e.Row.Cells[0].Controls) 
     { 
      if (ctrl.GetType().Name == "CheckBox") 
      { 
       CheckBox chk = (CheckBox)ctrl; 
       chk.Checked = !chk.Checked; 
      } 
     } 
    } 
} 

올바른 셀을 checkbox 필드에 추가해야합니다.

또 다른이 TemplateField 추가하는 것입니다 : 따라서 당신은 당신이 그것을 사용하는 경우 쿼리를 수정할 필요가 없습니다, 그것은 데이터베이스 서버에서 가져온 후 당신은 또한 당신의 데이터 소스를 수정할 수

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="CheckBox1" runat="server" 
      Checked='<%# !Convert.ToBoolean(Eval("Status")) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

을 다른 곳에서는 정상적인 방법입니다. 당신이 당신의 품목의 Generic List이 말 :

myItems.ForEach(item => item.Status = !item.Status); 

추가 jQuery를 버전가 :

<script> 
    $(function() { 
     $("#<%=GridView1.ClientID %> input[type='checkbox']").each(function() { 
      $(this).prop("checked", !$(this).prop("checked")); 
     }); 
    }); 
</script> 
+1

먼저 하나가 마법처럼 일했다! 무리 감사 –