2009-07-07 6 views
1

rowdatabound fn에서 다음 코드를 사용하고 있습니다.Rowdatabound of gridview

Protected Sub gvwMileStone_RowDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) 

     If e.Row.RowType = DataControlRowType.Footer Then 
      Dim ddlItem As DropDownList = CType(e.Row.FindControl("ddlFProjectLevels"), DropDownList) 
      If ddlItem IsNot Nothing Then 
       ddlItem.DataSource = objMileStone.GetProjectLevels() 
       ddlItem.DataValueField = "MileStoneID" 
       ddlItem.DataTextField = "Name" 
       ddlItem.DataBind() 
      End If 
     End If 
     If e.Row.RowType = DataControlRowType.DataRow Then 
      If e.Row.RowState = DataControlRowState.Edit Then 
       Dim ddlEProjectLevels As DropDownList = CType(e.Row.FindControl("ddlEProjectLevels"), DropDownList) 
       ddlEProjectLevels.DataSource = objMileStone.GetProjectLevels() 
       ddlEProjectLevels.DataValueField = "MileStoneID" 
       ddlEProjectLevels.DataTextField = "Name" 
       ddlEProjectLevels.DataBind() 
       ddlEProjectLevels.SelectedValue = milestoneid 
      End If 
     End If 


    End Sub 

ddlEProjectLevels 내가 첫번째 행 ddlEProjectLevels에서 편집을 클릭 edititemtemplate.Whwn의 드롭 다운리스트가 그것을 대체에 db.Means에서로드되는 3에 values.Again을 포함하지 않는 제 2 행의 드롭 다운리스트에서 database.But에서 데이터가로드됩니다이다 행을 편집 할 때 드롭 다운 목록 (ddlEProjectLevels)이로드되지 않습니다. 누군가 도움이 될 수 있습니까?

답변

5

이 문제는 다른 컨트롤과 비교하여 다소 혼란스럽고 GridView 및 DetailsView 컨트롤에 적용됩니다. 항목에 대체 또는 편집 상태가있을 수 있으므로 비트 논리를 사용하여 RowState 열거를 확인해야합니다.

그래서 대신 :

If e.Row.RowState = DataControlRowState.Edit Then 

시도 :

If (e.Row.RowState And DataControlRowState.Edit) > 0 Then 

추가 정보를 위해 DataControlRowState Enumeration 페이지를 확인하십시오.

+0

작동했습니다. 많이 감사합니다. – user42348

+0

좋습니다! 문제 없음 :) –

+0

굉장해, 그걸 너무 찾고 있었고 & 일했다 :) – burntsugar

관련 문제