2009-07-07 8 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 2行目のドロップダウンリストでdatabase.Butからのデータでロードされることは、それが代替でdb.Meansからロードされる第三にvalues.Againが含まれていない私は、1行目のddlEProjectLevelsで編集をクリックしedititemtemplate.WhwnでDropDownListコントロールです行を編集するときにドロップダウンリスト(ddlEProjectLevels)が値を読み込めません。誰かが助けてくれますか?

答えて

5

この問題は、他のコントロールと比較して多少混乱し、GridViewコントロールとDetailsViewコントロールに適用されます。項目にはAlternateまたはEditの状態がある可能性があるため、ビット単位のロジックを使用してRowState列挙をチェックする必要があります。

ので、代わりの:

If e.Row.RowState = DataControlRowState.Edit Then 

試してみてください。

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

詳細情報についてはDataControlRowState Enumerationページをチェックしてください。

+0

それは働いた。たくさんありがとう。 – user42348

+0

素晴らしい!いいえ問題: –

+0

恐ろしい、それも探していた&働いた:) – burntsugar