[ASP.NET] Html도구에서 CheckBox 의 Value 값 가져오기
게시판을 만드거나 할때 선택을 표준도구나 Gridview 등에서 지원하는 Check관련 컨트롤을 사용하는데는
원하는 모냥(?) 나지 않을 가능성이 있습니다.
이때 html 도구상자에서 Checkbox를 사용하여 Value값을 가져오려고 하면
문제가 생길때가 있습니다. (원하는 모양이 나오지 않습니다.;;;)
Grideview 에서 첫번재칼럼에 templateField를 사용하여 html도구의 CheckBox를 넣은 것을 가정하고
그곳에서 체크된 것의 Value 값을 받아오는 부분을 이야기합니다.
(선행 되어야 할 문제는 Html도구에서 생성한 CheckBox에서 오른쪽 마우스를 눌러 '서버 컨트롤로 실행' 을 체크해 주셔야 합니다.)
foreach (GridViewRow row in GridView1.Rows)
{
HtmlInputCheckBox chkbox1 = (HtmlInputCheckBox)(row.Cells[0].Controls[1]);
if (chkbox1.Checked)
{
Response.Write("<script>alert('" + chkbox1.Value + "');</script>");
}
}
HtmlInputcheckBox 클래스를 사용하여 chkbox1 이라는 오브젝트를 지정해줍니다. 지정시에 GridView의 행의 첫번째 열의
첫번째 도구를 가져오는 것을 이야기 합니다.
HtmlInputCheckBox chkbox1 = (HtmlInputCheckBox)(row.Cells[0].Controls[1] <<-- 이부분
foreach문을 사용하는 것은 GridView에서 행이 몇개나 생성될지 알수가 없기 때문에..
(이런설명 필요가 없죠 ^^?)
도움이 되셨으면 좋겠습니다.
//=================================== 다른 방식 =======================================
//HtmlInputCheckBox chk;
// 선택된 체크박스의 정보를 담기 위해 객체변수 지정
for (int i = 0; i < GridView1.Rows.Count; i++) // Count는 1부터 시작.. Index는 0 부터 시작
{
HtmlInputCheckBox chk = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chkbox"); // 선택된 체크박스의 정보를 담기 위해 객체변수 지정
//FindControl("")의 괄호안에 Html도구에서 생성한 Checkbox의 이름(ID)를 넣어 줍니다.
//그리드뷰의 행의 개수만큼 체크박스를 하나씩 chk에 저장하기
if (chk.Checked) // 체크박스가 선택이 되었을 경우 DB에서 삭제
{
//--------------------- 실행할 내용 -------------------------
Response.Write("<script>alert('" + chk.Value + "');</script>");
}
}
//=====================================================================================