【问题标题】:ASP.NET with VB.NET adding rows to data table don't remain after postback带有 VB.NET 的 ASP.NET 在回发后不会保留向数据表添加行
【发布时间】:2018-02-26 12:36:18
【问题描述】:

我正在使用带有 VB.NET 的 ASP.NET,我希望用户在数据表中添加几行。

我正在尝试通过(文本框、rad 组合框和复选框)在运行时将多行添加到数据表中。 我添加第一行第二行和第三行。 但是当我展示数据表时,它只显示我输入的最后一行 所以表格只包含一行。

如何保持数据表中的所有行不只是一行?我什么都试过了,请帮忙。

这是我的代码:

Dim dcItemID = New DataColumn("ItemID", GetType(Int32))
Dim dcUnit = New DataColumn("UnitID", GetType(Int32))
Dim ItemPrice = New DataColumn("ItemPrice", GetType(Int32))
Dim sellprice = New DataColumn("SellPrice", GetType(Int32))

dt.Columns.Add(dcItemID)
dt.Columns.Add(dcUnit)
dt.Columns.Add(ItemPrice)
dt.Columns.Add(sellprice)

dt.Rows.Add(Convert.ToInt32(rcItemName.SelectedValue), Convert.ToInt32(rcUnitID.SelectedValue), tbItemPrice.Text, tbSellprice.Text)

【问题讨论】:

  • 我在功能页面加载之前在页面顶部声明它。什么是获取和发布?
  • 好的,我将标签更改为网络表单。您可能会在每个回帖上创建一个新表。您需要在会话中保存数据表,例如this
  • 请记住,每个回发都会创建一个 Page 类的新实例。您的 Page 类实例及其包含的任何数据在它在浏览器中为用户呈现时被销毁,并且为每个回发创建和销毁全新的实例,包括运行整个页面生命周期.
  • @SteveGreene 感谢您的重播,我试过了,但没有任何其他建议
  • @JoelCoehoorn 谢谢你的重播我知道

标签: asp.net webforms


【解决方案1】:

谢谢大家,我找到了答案

如果有人感兴趣,这是我的解决方案:

公共类 WebForm1 继承 System.Web.UI.Page

Private dt As DataTable = New DataTable()

Private dr As DataRow = Nothing
Protected Sub btnSaved_Click(sender As Object, e As EventArgs) Handles btnSaved.Click


    If ViewState("table") IsNot Nothing Then
        dt = CType(ViewState("table"), DataTable)
    End If
    dr = dt.NewRow()
    dr("ItemPrice") = tbItemPrice.Text
    dr("SellPrice") = tbSellprice.Text
    ' dr("Product_Amount") = txtAmount.Text
    dt.Rows.Add(dr)
    ViewState("table") = dt
    GridView1.DataSource = dt
    GridView1.DataBind()
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    dt.Columns.Add("ItemPrice")
    dt.Columns.Add("SellPrice")


End Sub

结束类

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    相关资源
    最近更新 更多