2011-03-01 3 views
1

이전에 비슷한 질문을 게시했지만 여전히 문제가 있습니다. asp.net 4 및 C#을 사용합니다.GridView 편집 모드에서 행 찾기

GridView를 가지고 있는데, GridView에있는 모든 Label의 값을 변경하기 위해 A)의 일부 논리가 있습니다.이 코드 부분이 작동합니다. 추신 : _RowDataBound도 사용합니다 (올바른지 알려주세요).

나는 EDIT MODE에 갈 때도 만 하나의 ROW에 대한 몇 가지 논리를 적용해야합니다.

여기 내 코드. EDIT MODE의 행이 GridView의 첫 번째 행인 경우에만 작동합니다. 예를 들어 EDIT MODE에 넣으면 3 번째 행이 작동하지 않습니다.

어떤 아이디어 ?? 감사합니다

protected void uxManageSponsoredContentsDisplayer_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      switch (e.Row.RowType) 
      { 
       case DataControlRowType.DataRow: 
       // A) - Some code here 

       if (e.Row.RowState == DataControlRowState.Edit) 
       { 
       // Here some logic to apply only to ONE ROW! 

       } 
       break; 
      }   
     } 
+0

편집 할 행을 어떻게 알 수 있습니까? 항상 e.Row.RowIndex를 사용하여 행 번호를 가져올 수 있습니다. – Richard

+0

감사합니다, 이건 내 문제입니다 .... 나는 e.Row.RowIndex를 사용하는 법을 모르겠다 ... 당신은 샘플 코드를 제공 할 수 있습니까? 많은 감사합니다 – GibboK

+0

지금 당장 시도해 봤는데 고마워요.하지만 여전히 문제가 있습니다. rowediting으로 코드 예제를 업데이트 할 수 있습니까? 덕분에 – GibboK

답변

0

나는 동일한 문제가 있습니다. 두 번째, 네 번째 등 행이 대체 상태에 있으므로 편집을 클릭하면 대체 상태 | 편집 상태로 변경됩니다. 행에 대체 | 편집 상태가 있는지 점검해야합니다. 여기 당신을 도울 수있는 무언가가 있습니다. 나를 위해 잘 작동하고 있습니다.

protected void uxManageSponsoredContentsDisplayer_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     switch (e.Row.RowType) 
     { 
      case DataControlRowType.DataRow: 
      // A) - Some code here 

      if (e.Row.RowState ==(DataControlRowState.Alternate|DataControlRowState.AlternateEdit) || e.Row.RowState == DataControlRowState.Edit) 
      { 
      // Here some logic to apply only to ONE ROW! 

      } 
      break; 
     }   
    }