0

我在gridview中有一个下拉菜单,它通过web方法获取数据,但是保存数据后,我无法在gridview中显示保存的数据。

下面是通过 web 方法进行 gridview 绑定的代码:

 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 回答