2013-02-27 229 views
0

我有一個包含2個下拉菜單,2個文本框和一個按鈕的頁面。用戶將從下拉列表中選擇項目,然後將數據輸入到文本框中。這樣做後,他們將點擊一個按鈕,從這些控件中獲取信息並填充「訂單容器」。他們將能夠輸入多個「訂單」。這種情況下的哪種控制?

  • Gridview控件是否會成爲這個「Order Container」的路線?
  • Gridview控件是否允許插入多條記錄?
  • Gridview控件是否允許刪除記錄?

感謝您的幫助! 邁克

更新: 這裏是我如何更新GridView控件:

Protected Sub imgAddOrderItemClick(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgAddOrderItem.Click 
    Dim qty As String 'Integer 
    Dim type As String 
    Dim product As String 
    Dim price As Integer 
    Dim count As Integer 

    count = GridView1.Rows.Count 
    type = ddlProductTypes.SelectedItem.ToString 
    product = ddlProductFamilies.SelectedItem.ToString 
    price = 11 
    qty = TextBox10.Text 


    ' Populate the datatable with your data (put this in appropriate loop)   
    dr = dt.NewRow   
    dr("Type") = type 
    dr("Product") = product 
    dr("Qty") = qty 
    dr("Price") = price 

    ' Add the row 
    dt.Rows.Add(dr) 

    dt.AcceptChanges() 

    GridView1.DataSource = dt 'GetData() 
    GridView1.DataBind() 

End Sub 
+0

我不認爲'GridView'允許你插入記錄。您最好查看['ListView'](http://msdn.microsoft.com/zh-cn/library/bb398790%28v=vs.100%29.aspx)控件。 – 2013-02-27 21:12:28

+0

我已經能夠添加一行到Gridview,但只有一行。如果我有第二行,它會覆蓋現有的行。 – Charlie 2013-02-28 20:21:42

+0

我正在添加一個像這樣的新行: Charlie 2013-02-28 20:22:49

回答

0

的GridView是罰款!

你的DT從哪裏來?

我認爲問題是,當你回來後,你的dt被初始化,因此它是空的。這就是爲什麼你每次只能得到一個(新)記錄。有兩種方法可以對它進行分類,

(1)。你必須保持dt(或數據源)在你的會話中,你的代碼是好的。

(2)。如果dt不在會話中,則需要先循環訪問gridview行和列以填充已添加的數據(如果有),然後添加新訂單並最終將其綁定到gridview。

希望有幫助!

0

Gridview將工作得很好。您看到您的行被覆蓋的可能性很大,因爲您的代碼中的數據表(dt)正在重新實例化每個請求。你需要做的是將該表保存在內存中(例如,將它放在Session中),從那裏抓取它,添加新行並重新綁定GridView。就像這樣:

Protected Sub imgAddOrderItemClick(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgAddOrderItem.Click 
dt = Session("Data") 

    If dt is Nothing Then 
    ' Create your DT columns here 
     Session.Add("Data",dt) 
    End If 

    'Add rows here and rebind 
    dr = dt.NewRow   
    dr("Type") = type 
    dr("Product") = product 
    dr("Qty") = qty 
    dr("Price") = price 

    ' Add the row 
    dt.Rows.Add(dr) 

    dt.AcceptChanges() 

    GridView1.DataSource = dt 'GetData() 
    GridView1.DataBind() 
End Sub 
+0

謝謝。我需要閱讀會話和會話變量。看到我上面的更新。 – Charlie 2013-02-28 20:57:16