2011-10-20 2 views
2

2 열이있는 GridView가 있습니다.SQL이있는 확인란 필드가있는 GridVew 열

첫번째 열은 : 테스트 라벨 (TemplateField)

번째 : 체크 박스 (ASP : CheckBoxField를) 비트 열이 SQL 테이블은 그와 CONNECT (완료).

페이지로드시 - 페이지가 모든 행을 검사합니다. 여기서 checkbox = true이면 test-label.visble이 false가됩니다.

SQL 테이블에서 값을 확인하기 위해 SELECT 문으로 코드를 작성하는 방법을 알고 있지만 페이지로드시 gridview의 모든 행을 검사하는 방법을 모릅니다.

어떻게 할 수 있습니까? 이 CheckBoxField를뿐 아니라 "체크 박스"있기 때문에

은 (내가 체크 박스에 대한 findcontroll을 사용할 수 없습니다. 그래서

<asp:CheckBoxField DataField="done" SortExpression="done" HeaderText="done?" /> 

, 내가 여기에 할 수있는 것은 어쩌면 일반 CB와 해당 필드를 대체하기 위해 무엇을? (내가 이 데이터 바인딩을 수행하는 방법을 모르겠어요 -. 일반 CB에)

답변

2

당신이 GridView.RowDataBound Event

그래서 당신이

처럼 뭔가를 할 수 사용할 수 있습니다3210
+1

일이 ... 난 아직도 그냥 후세를 위해'e.Row.RowType'을 확인 좋은 것 같아요. – pseudocoder

+0

CheckBoxField에는 ID 속성이 없습니다. 나는 사용하고있다 : findcontrol을 위해 무엇을 할 수 있습니까? – Oshrib

+0

나는 솔루션을 찾았습니다. .. 간단합니다. Eval을 사용하여 정기적으로 Cb를 작성하면 코드가 완벽합니다. 고맙습니다. – Oshrib

2

GridView이 아직 데이터 바인딩되지 않았기 때문에 Page.Load에서 처리 할 수 ​​없습니다.

GridView.RowDataBound을 사용해보십시오.

코드 :

널 (null) 검사에 대한
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     CheckBox cb = (CheckBox)e.Row.FindControl("checkbox"); 
     Label lbl = (Label)e.Row.FindControl("test-label"); 
     lbl.Visible = !(cb.Checked); 
    } 
} 
+0

CheckBoxField에는 ID 속성이 없습니다. 나는 사용하고있다 : findcontrol에서 무엇을 할 수 있습니까? – Oshrib