'분류 전체보기'에 해당되는 글 190건

  1. 2010.01.11 GridView 에 CheckBox 로 전체선택 3
ASP.NET2010. 1. 11. 14:38

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
   AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="PersonID"
   DataSourceID="mySource" Width="366px" CellPadding="4"
   ForeColor="#333333" GridLines="None">
 <Columns>
   <asp:CommandField ShowSelectButton="True" />
   <asp:BoundField DataField="PersonID" HeaderText="PersonID"
         InsertVisible="False" ReadOnly="True" SortExpression="PersonID" />
   <asp:BoundField DataField="Name" HeaderText="Name"
                                       SortExpression="Name" />
   <asp:TemplateField HeaderText="Select">
    <ItemTemplate>
       <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
    <HeaderTemplate>
    </HeaderTemplate>
   </asp:TemplateField>

 </Columns>

 <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
 <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
 <PagerStyle BackColor="#FFCC66" ForeColor="#333333"
                           HorizontalAlign="Center" />
 <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
 <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
 <AlternatingRowStyle BackColor="White" />
</asp:GridView>

 

 

=================

 

TemplateField 에 checkbox 를 위와 같이 구현해 놓았습니다.

 

=================

 

// StringBuilder object
StringBuilder str = new StringBuilder();

// 컨트롤에서 checkboxes 선택한다.
for (int i = 0; i < GridView1.Rows.Count; i++)
{
  GridViewRow row = GridView1.Rows[i];
  bool isChecked = ((CheckBox) row.FindControl("chkSelect")).Checked;

  if (isChecked)
  {
    // Column 2 는 컬럼명
    str.Append(GridView1.Rows[i].Cells[2].Text);
  }
}

 

// 결과값을 보기
Response.Write(str.ToString());

 

===================

 

위와 같이 , 버튼을 클릭시 이벤트를 정의합니다.

StringBuilder 를 사용할 경우에는 System.Text namespace 를 정의해야 합니다.

 

===================

 

<HeaderTemplate>
  <input id="chkAll" on click="java script:SelectAllCheckboxes(this);"
              runat="server" type="checkbox" />
</HeaderTemplate>

 

====================

 

check-all 기능을 넣기 위해 HeaderTemplate 를 기술해줍니다.

SelectAllCheckboxes 의 java script 메소드는 아래와 같습니다.

 

====================

 

<script language=java script>

 function SelectAllCheckboxes(spanChk){

   var oItem = spanChk.children;
   var theBox= (spanChk.type=="checkbox") ?
        spanChk : spanChk.children.item[0];
   xState=theBox.checked;
   elm=theBox.form.elements;

   for(i=0;i<elm.length;i++)
     if(elm[i].type=="checkbox" &&
              elm[i].id!=theBox.id)
     {
       
       if(elm[i].checked!=xState)
         elm[i].click();
       
     }
 }
</script>

 

 

 

Posted by 댓거리사랑