2012-06-01 51 views
1

我有一個gridview有四個模板字段,我需要能夠將信息保存到數據庫。當我點擊編輯按鈕並且我的列變成編輯模式時,我可以輸入信息就好了......但是當我試圖通過控制循環來獲取信息時,它沒有選擇任何東西?Gridview問題

Private Sub gvOLIAdj_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvOLIAdjst.RowEditing  
    gvOLIAdjst.EditIndex = e.NewEditIndex  
    BindData() 
End Sub 

這是我到目前爲止的更新事件......任何想法?我只是沒有做對嗎?

Private Sub gvOLIAdj_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvOLIAdjst.RowUpdating  
Dim dts As DataTable = DirectCast(Session("BudgetsTable"), DataTable)  
Dim row As GridViewRow = gvOLIAdjst.Rows(e.RowIndex)  
If DirectCast(row.FindControl("txtItemTempTtlAmt"), TextBox).Text = "" Then   
    lblError.Text = "Invalid Entry. Correct and try again"   
    e.Cancel = True  
Else   
    lblError.Text = ""   
    dts.Rows(row.DataItemIndex)("Approval Date") = DirectCast(row.FindControl("txtItemTempApprDt"), TextBox).Text   
    dts.Rows(row.DataItemIndex)("Total Amount") = DirectCast(row.FindControl("txtItemTempTtlAmt"), TextBox).Text   
    dts.Rows(row.DataItemIndex)("Comments") = DirectCast(row.FindControl("txtItemTempCmmt"), TextBox).Text   
    dts.Rows(row.DataItemIndex)("Initials") = DirectCast(row.FindControl("lblItemTempInit"), Label).Text   

    gvOLIAdjst.EditIndex = -1   
    BindData()  
End If 
If Not IsPostBack Then 
     result = dal.dbConnect(sqlconnection, ConfigurationManager.AppSettings("SQLServerConnection")) 
     If result = "Successful" Then 
      dt = ExecuteInsertUpdateDeleteStoredProc(sqlconnection, "@amt", txtItemTempApprDt.text) 
      dbClose 
     End If 

    End If 
End Sub 

回答

0

而不是在GridView列拉的控制,我會用GridViewUpdateEventArgs變量你有權訪問那裏。您可以從NewValues屬性中提取值(還有其他您可能需要的有用屬性 - 如OldValuesRowIndex)。

您訪問他們像這樣:

e.NewValues("Data Field Name").ToString() 

其中,「數據字段名」是該值(場在你的GridView小號數據集的名字)的關鍵。

像這樣的東西應該工作

dts.Rows(row.DataItemIndex)("Approval Date") = e.NewValues("Approval Date").ToString() 
dts.Rows(row.DataItemIndex)("Total Amount") = e.NewValues("Total Amount").ToString() 
dts.Rows(row.DataItemIndex)("Comments") = e.NewValues("Comments").ToString() 
dts.Rows(row.DataItemIndex)("Initials") = e.NewValues("Initials").ToString() 

的按鍵我展示了有可能不完全正確,因爲我看不出你的數據綁定到你的GridView。我相信你可以設置一個斷點並檢查「NewValues」字典來找到確切的鍵。如果您有任何問題,請告訴我。

0

通過刪除此檢查(如果你正在從你的模板控件值RowUpdating事件):

If Not IsPostBack Then 

End If 
+0

我收到了任何值,這是我想弄清楚......它不會從我的模板字段拉值(信息)? – developthestars