2011-01-11 7 views
0

나는 초보자입니다. ItemName, ItemDescription, Length 및 Quantity에 대한 네 개의 텍스트 상자 필드가 있습니다. 하나의 radiobuttonlist 및 해당 listitem은 FixedLength 및 Random Length입니다. Submit라는 하나의 버튼 필드와 하나의 gridview.조건을 기반으로 GridView에서 CheckBox를 확인하는 방법?

GridView에서 4 개의 바운드 열과 ItemName, ItemDescription, Length, Quantity 및 IsFixed_f (플래그 필드)와 같은 1 개의 템플릿 열이 있습니다. IsFixed_f 필드에 대한 GridView의 템플릿 열에 하나의 확인란을 추가했습니다.

모든 텍스트 필드를 입력 한 후 radiobuttonlist (FixedLength 또는 RandomLength)에서 하나의 listitem을 선택해야합니다. 이 일을 마친 후. Submit 버튼을 입력하면 GridView의 해당 열 이름 아래에 표시 될 텍스트 상자의 모든 값과 그렇지 않으면 FixedLength listitem이 선택되어 있는지 확인하는 확인란이 선택됩니다. checkbox.checked는 false 여야합니다. 이 작업을 수행하는 방법? 버튼 클릭 이벤트에서

, 난이

 DataRow DR = null; 
     DR = datatable.NewRow(); 
     DR["ItemName"] = DSItemName.Text.Trim(); 
     DR["Description"] = txtItemDescription.Text.Trim(); 
     DR["Length"] = txtLength.Text.Trim(); 
     DR["Quantity"] = txtQuantity.Text.Trim(); 
     datatable.Rows.Add(DR); 
     GridView.DataSource = datatable; 
     GridView.DataBind(); 

처럼 사용했다하지만 난 체크 박스를 확인하고의 GridView에 표시하는 방법 잘 모릅니다. 제안을하십시오. 다음 코드를 사용하면 GridView에 CheckBox와 함께 "true"라는 텍스트가 표시됩니다.

 foreach (GridViewRow GVR in gridview.Rows) 
     { 
      CheckBox cb = (CheckBox)GVR.FindControl("cbIsFixed_f"); 

      if (cb != null && radiobuttonlist.SelectedItem.Value == "Fixed Length") 
      { 
       cb.Checked = true; 
      } 
      else 
      { 
       cb.Checked = false; 
      } 
      DR["IsFixed_f"] = cb.Checked; 
     } 
+0

.aspx 파일에서도 코드를 볼 수 있습니까? –

+0

@ Jakob. 통해 UR 응답 주셔서 감사합니다. 나는 대답을 얻었다, 나는 아래에 게시했다. – thevan

답변

0

이 질문에 대한 답변을 얻었습니다.

DR["IsFixed_f"] = radiobuttonlist.SelectedItem.Value == "Fixed Length" ?true : false; 

답장을 보내 주셔서 감사합니다.

+0

질문을 응답하지 않은 것으로 표시하는 것을 잊지 마십시오 (또는 일부 답변 * gg *) –

0

GridView의 OnRowDataBound 이벤트에 대한 이벤트 처리기를 작성할 수 있습니다. 이 경우 확인란 열을 찾아서 선택하거나 선택을 해제해야합니다. 이 같은

뭔가 :

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    CheckBox c = e.Row.Cells[4].FindControl("YourCheckboxId"); 
    if(c != null && e.Row.DataItem["sFixed_f"] == true) 
    { 
    c.Checked = true; 
    } 
} 
+0

안녕하세요, 내 질문을 수정했습니다. 내 문제에 대해 명확한 아이디어를 줄 수 있기를 바랍니다. – thevan

0

나는 데이터 집합에서 행을하는 방법을 아주 확실하지 않다 - 당신이() dataTable.newRow을 의미 가정합니다. 또한 tableSchema에 IsFixed_f 값에 대한 열이 포함되기를 바랍니다.

tableSchema에 IsFixed_f 값에 대한 추가 열이있는 경우 checkBoxField를 사용하여 해당 값을 바인딩 할 수 있습니다.

templateField에 언급했듯이 테이블에 IsFixed_f에 대한 정의가 없다고 가정합니다. 이 경우 스키마에이 열을 수동으로 추가 할 수 있습니다.

곳 (세트/테이블을?!)을 저장하지 않고 (새로운 gridviewrow에서) 특정 체크 박스로 IsFixed_f 값을 바인딩은 -하지 않을 경우 -이 도움이 될

희망 ... 나에게 불가능 보인다 문제를 자세히 설명해주십시오!

+0

@ Franz. 나중에 그것은 datatable입니다. 나는이 필드들을 데이터베이스에 저장하지 않을 것이다. 그냥 GridView를 사용하여 표시하고 싶습니다. 그러나 위 코드를 사용하면 GridView에 텍스트 값을 표시 할 수 있습니다. – thevan

+0

안녕하세요. 내 질문을 편집했습니다. 나는 그것이 내 문제에 대해 명확한 시각을 줄 것이라고 생각한다. – thevan

+0

답을 편집 해 주셔서 감사합니다.gridView의 각 행에는 고유 한 IsFixed_f 값이 있습니까? 이게 맞을 경우 - IsFixed_f 값을 어딘가에 저장해야합니다 .. 언제 샘플 코드를 실행합니까 (foreach ....) - PageLoad? Button_click? Submit_click? 이 샘플 코드는 각 행의 radiobuttonlist (gridview에 없음)를 참조합니다! 그래서 각 행은 당신의 체크 박스와 같은 값을 가질 것입니까? 각 행에 IsFixed_f 값을 저장해야한다고 생각합니다. –

관련 문제