2006-08-23

데이터그리드안의 체크박스,텍스트 박스 생성과 이용하기

칼럼 안에 다음 부분을 코딩해보자.



<asp:TemplateColumn ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox Runat="server" ID="CK1"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox Runat="server" ID="textbox1"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>



그리고 비하인드 페이지에는 알아서들 데이터를 바인딩 시키기 바란다.
예를 들어 한칼럼을 더추가시켜 그칼럼을 데이터를 바인딩 시키면
알아서 행이 생기겠지..^^



자...어떠한가...훌륭히 바인딩이 되어 나오지 않는가

여기서 당신의 불만이 나올것이다.^^;;;
이제 어떻게 이값을 읽어 드릴것인지...


나는 여기서 이렇게 구현 할려한다. 버튼을 하나 만들어 클릭했을 시

체크박스가 true인것 즉, 체크한 칼럼의 텍스트 박스안의 내용값 즉, value를 가져올 것이다.


자 버튼 클릭 이벤트에 다음 구문을 입력해보자.

for (int i = 0; i < DataGrid1.Items.Count; i++)
{
if (((CheckBox)DataGrid1.Items[i].FindControl("CK1")).Checked == true)
{
Response.Write(((TextBox)DataGrid1.Items[i].FindControl("textbox1")).Text + "</br>/");
}



자세히 뚤어지게 보면 대충코드의 의미가 보이는지?

DataGrid1.Items.Count 말 그대로 데이터그리드의 아이템 수만큼 For문을 돌리겠다는 소리이다.

즉 아이템의 행수만큼 for문은 돌것이다.

IF문을 보면,,체크박스 값을 읽어야 할것이다.

FindControl이란것을 사용하여 데이터그리드에 사용한 asp컨트롤을 찾는 것이다.매우 쉽지 않은가
Text박스도 마찬가지이다.

즉, 본문을 해석해보면 아이템 수만큼, 즉 행수만큼 체크박스가 체크된 행의 텍스트 박스를 익어와라
이말이된다는 소리...

이것만 알면 웬만한 것은 다구현 되겠지??
드롭다운리스트를 테스트로 만들어서 좀더 자기만의 것으로 만드시길...

0 Comments:

댓글 쓰기

<< Home