百盛万佳 2019-06-18 22:56 采纳率: 0%
浏览 235

datatable 怎么只能插入一行吗?插入第二行就替代第一行了,不会累加插入。

前台

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="inproduct.aspx.cs" Inherits="inproduct" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>        
            <asp:Button ID="Button1" runat="server" Text="添加第一行" OnClick="Button1_Click" />
            <asp:Button ID="Button2" runat="server" Text="添加第二行" OnClick="Button2_Click" />
            <asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
            </asp:GridView>

        </div>
    </form>
</body>
</html>

后台程序

using System;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class inproduct : System.Web.UI.Page
{

    public DataTable dt = new DataTable();
    protected void Page_Load(object sender, EventArgs e)
    {

        DataColumn dc1 = new DataColumn("prizename", Type.GetType("System.String"));
        DataColumn dc2 = new DataColumn("point", Type.GetType("System.Int16"));
        DataColumn dc3 = new DataColumn("number", Type.GetType("System.Int16"));
        DataColumn dc4 = new DataColumn("totalpoint", Type.GetType("System.Int64"));
        DataColumn dc5 = new DataColumn("prizeid", Type.GetType("System.String"));
        dt.Columns.Add(dc1);
        dt.Columns.Add(dc2);
        dt.Columns.Add(dc3);
        dt.Columns.Add(dc4);
        dt.Columns.Add(dc5);
        DataRow dr = dt.NewRow();
        dr["prizename"] = "娃娃1";
        dr["point"] = 10;
        dr["number"] = 1;
        dr["totalpoint"] = 10;
        dr["prizeid"] = "001";
        dt.Rows.Add(dr);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        DataRow dr = dt.NewRow();
        dr["prizename"] = "娃娃2";
        dr["point"] = 20;
        dr["number"] = 2;
        dr["totalpoint"] = 20;
        dr["prizeid"] = "002";
        dt.Rows.Add(dr);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        DataRow dr2 = dt.NewRow();
        dr2["prizename"] = "娃娃3";
        dr2["point"] = 30;
        dr2["number"] = 3;
        dr2["totalpoint"] = 30;
        dr2["prizeid"] = "003";
        dt.Rows.Add(dr2);

        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}
  • 写回答

1条回答 默认 最新

  • zzticctv 2022-07-18 17:29
    关注
    使用静态的表 首次加载定义列值
    private static  DataTable dt = new DataTable(); //static 静态
    private static int index = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        if(index == 0) //列名只在首次加载页面时添加
        {
            DataColumn dc1 = new DataColumn("prizename", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("point", Type.GetType("System.Int16"));
            DataColumn dc3 = new DataColumn("number", Type.GetType("System.Int16"));
            DataColumn dc4 = new DataColumn("totalpoint", Type.GetType("System.Int64"));
            DataColumn dc5 = new DataColumn("prizeid", Type.GetType("System.String"));
            index += 1;
        }      
     
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)