【问题标题】:Adding objects to array on button click在按钮单击时将对象添加到数组
【发布时间】:2018-03-13 18:44:49
【问题描述】:

我有一个“人”类,其构造函数如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Programming_handin_2___Arrays
{
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Password { get; set; }

    public Person(string name, int age, string password)
    {
        this.Name = name;
        this.Age = age;
        this.Password = password;
    }

    public override string ToString()
    {
        return Name + ", " + Age + ", " + Password;
    }
}
}

我还有一个带有几个文本框的 aspx 页面,用于添加上面的变量。

    <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            Name:<br />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <br />
            Age:<br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <br />
            <br />
            Password:<br />
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Add person" />
            <br />
            <br />
        </div>
    </form>
</body>
</html>

我的目标是每次有人填写表格并单击按钮时创建一个新的“人”。然后应该在页面上显示“人”。实现这一目标的最佳方法是什么?

【问题讨论】:

  • 最后一部分是在页面上显示它们?
  • 解释请求的生命周期,数据如何在 ASP.Net 中通过多个请求持久化,使用表单并最终将元素添加到数组(这本身并不重要)对于单个 SO 来说太过分了题。您可能想缩小您现在面临的问题并提出具体问题,但请确保首先搜索类似的问题(现在它甚至不能作为重复关闭给您一些提示)
  • @AlexeiLevenkov 可以通过有根据的猜测假设 OP 想知道如何在页面上为每个 person 对象显示包含的元素。
  • @lxxtacoxxl 如果您必须猜测 OP 有什么问题,这意味着问题不清楚。如果您确信自己知道帖子在问什么 - 建议先编辑,然后再回答。
  • @lxxtacoxxl,完全正确。我想知道如何显示每个人对象。

标签: c# asp.net arrays webforms


【解决方案1】:
List<Person> persons;
 protected void Page_Load(object sender, EventArgs e){

  if(!IsPostBack){
     List<Person> persons= new List<Person>();
     Session["personslist"]=persons;
  }else{
     persons= (List<Person>)Session["personslist"];
  }
}

protected void Button1_Click(object sender, EventArgs e){
 persons.Add(new 
 Person(TextBox1.Text,int.parse(TextBox2.Text),TextBox3.Text));
}

【讨论】:

  • 接受的“将对象添加到数组”的答案显示根本没有使用数组...
【解决方案2】:

此问题在此站点上已有多个重复项,因此我将在此答案中包含他们的链接,因为并非所有答案都相同,并且并非所有答案都可能正是您要寻找的。请确保在发布之前进行研究,因为我所要做的就是在 Google 上快速搜索“动态添加元素到页面 c#”和第二个(用 javascript 替换 c#)。我在 Google 上的快速搜索得到了多个答案,这些答案将帮助您准确地实现您的要求,我相信我过去曾使用其中两个来实现您想要做的同样的事情。

这个想法很简单。基本上循环遍历您的 Person 对象集合并将元素添加到指定的父元素,直到您的循环完成。其余的归结为样式,如果您在那里遇到问题,您应该为此提出一个新问题。

以下堆栈溢出帖子应该让您朝着正确的方向前进:

Dynamically add HTML to ASP.NET page

How to add HTML elements Dynamically (ASP.NET)

Can I dynamically add HTML within a div tag from C# on load event?

Create <div> and append <div> dynamically

HTML: Add elements dynamically using JS

也可以随意查看this 教程和this JavaScript 中可用的createElement 函数资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2014-04-30
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多