0

2 つのドロップダウン、2 つのテキスト ボックス、およびボタンを含むページがあります。ユーザーはドロップダウンから項目を選択し、テキスト ボックスにデータを入力します。その後、ボタンをクリックしてこれらのコントロールから情報を取得し、「注文コンテナ」に入力します。複数の「注文」を入力できます。

  • 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
4

2 に答える 2

0

GridViewは問題ありません!

あなたのdtはどこから来ていますか?

問題は、ポストバックするとdtが初期化されるため、空になることだと思います。そのため、毎回1つの(新しい)レコードしか取得できません。並べ替える方法は2つあります。

(1)。セッションでdt(またはデータソース)を保持する必要があり、コードは問題ありません。

(2)。dtがセッション中でない場合は、最初にグリッドビューの行と列をループして、すでに追加されているデータ(存在する場合)を入力し、次に新しい順序を追加して、最後にグリッドビューにバインドする必要があります。

お役に立てば幸いです。

于 2013-02-28T20:39:03.077 に答える
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
于 2013-02-28T20:40:27.013 に答える