0

Webメソッドを介してデータを取得するグリッドビューにドロップダウンがありますが、データを保存した後、保存したデータをグリッドビューに表示できません。

Web メソッドを介した gridview bind のコード ビハインドは次のとおりです。

 Private Sub BindData()
    Dim objTable As New DataTable("ProjectInfoClass")
    objTable = objWebService.BindProjectInfo

    projectInfoList.Clear()
    For Each dr As DataRow In objTable.Rows
        projectInfoList.Add(New ProjectInfoClass With {.ProjectNumber = dr("ProjectNumber").ToString(), .ProjectId = dr("ProjectId").ToString(), .ProjectName = dr("ProjectName").ToString(), .ProjectModifiedDate = dr("ProjectModifiedDate").ToString(), .RecordUpdatedDate = dr("RecordUpdatedDate").ToString(), .ProjectLocation = dr("ProjectLocation").ToString(), .LocationServerName = dr("LocationServerName").ToString(), .ProjectModifiedBy = dr("ProjectModifiedBy").ToString(), .DBServer = dr("DBServer").ToString(), .DBName = dr("DBName").ToString(), .Flag = Nothing})
    Next
   GridView1.DataSource = objTable
    GridView1.DataBind()
    End Sub

保存方法

 For Each objectList In projectInfoList

        If objectList.Dirty = True And objectList.Flag = Nothing Then
            objWebService.UpdateProjectInfo(objectList)
            Label1.Text = "Record updated successfully"

        ElseIf objectList.Flag = "I" And objectList.Dirty = True Then
            objWebService.InsertProjectInfo(objectList)
            Label1.Text = "Record inserted successfully"
        End If
    Next

    BindData()

    btnEdit.Enabled = True
    btnSave.Enabled = False
    btnAddNewRow.Enabled = False
End Sub

以下は、Web メソッドを呼び出すドロップダウンをバインドするためのコード ビハインドです。

Public Sub BindDataDropDown()
     For Each grdRow As GridViewRow In GridView1.
     Dim dropDown As DropDownList = DirectCast(GridView1.Rows(grdRow.RowIndex).Cells(7).FindControl("ddlProjectModifiedBy"), DropDownList)
      dropDown.DataSource = objWebService.BindDropDown()
      dropDown.DataValueField = "EmpId"
      dropDown.DataTextField = "EmpName"
      dropDown.DataBind()
     Next
End Sub

行データバインド

 Protected Sub ddlProjectModifiedBy_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    BindDataDropDown()
 End Sub

インデックスチェンジ

 Protected Sub ddlProjectModifiedBy_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim gv As DropDownList = TryCast(sender, DropDownList)
    Dim row As GridViewRow = gv.Parent.NamingContainer
    Dim rowindex As Integer = row.RowIndex
    projectInfoList.Item(rowindex).ProjectModifiedBy = gv.SelectedItem.ToString()
    projectInfoList.Item(rowindex).Dirty = True
End Sub

グリッドビューでドロップダウンの選択したデータを保持するには、グリッドの行バインド イベントに何を記述すればよいですか?

4

1 に答える 1

0

BindDataDropDown()変更をデータベースに正常に保存したら、ドロップ ダウン バインド メソッドを呼び出します。

于 2013-11-15T04:04:10.010 に答える