无法在我的 Class ASP.net 中创建按钮

Unable to create a button in my Class ASP.net

所以我想在创建新实例后添加一个 asp 按钮。我无法为按钮指定名称、ID 等。像这样 <asp:Button ID="Button1" runat="server" Text="Button" /> 我无法执行此操作,因为每次我尝试添加括号 " " 时它都不起作用。此外,我希望能够为所有日志为创建的每个按钮提供一个单独的 ID。我也无法删除它在左上角创建的输出,为什么会出现两次?我只想让它 ONCE 出现在页面中间!请记住,我为此搜索了很多地方,但没有答案。任何帮助,我将提供下面所有需要的代码。谢谢!


Class:

public class WelcomeText
{
    public string Greet;
    public string Name;
    public DateTime Visited;

    public WelcomeText(string greet, string name, DateTime visited)
    {
        Greet = greet;
        Name = name;
        Visited = visited;
    }

    public void greetUser(string msg)
    {
        HttpContext.Current.Response.Write(msg + Greet + " " + Name + " " + Visited + "<button></button><br/>");
    }
}

HTML:

<body>
    <form id="form1" runat="server">
    <div>
            <section>
        <%=displayWelcomeText()%>
            </section>
    </div>
    </form>
</body>

后面的代码:

public partial class WebForm1 : System.Web.UI.Page
    {
        public delegate void greetDel(string msg);

        protected void Page_Load(object sender, EventArgs e)
        {
            // display text
            displayWelcomeText();
        }

        public string displayWelcomeText()
        {
            string greetString = "";
            WelcomeText wT1 = new WelcomeText("Welcome", "Sean", DateTime.Now);
            WelcomeText wT2 = new WelcomeText("Hey", "Test", DateTime.Now);
            WelcomeText wT3 = new WelcomeText("Hello", "User", DateTime.Now);

            greetDel gD1 = new greetDel(wT1.greetUser);
            gD1("Log: ");

            greetDel gD2 = new greetDel(wT2.greetUser);
            gD2("Log: ");

            greetDel gD3 = new greetDel(wT3.greetUser);
            gD3("Log: ");

            return greetString;
        }
    }

我的代码有问题

哎呀!!这里有很多问题需要解决。

首先,您会看到两次输出,因为您调用了名为 displayWelcomeText() 的方法两次:第一次是在页面加载中,第二次是从 aspx 页面代码本身调用,例如<%=displayWelcomeText()%>.

如果您要检查服务器发送的内容,您会注意到第一组文本是在初始标记之前发送的。然后第二组在

区域内。

将 更改为 a 有什么问题

然后在页面加载方法中...

  myPanel.Controls.Add(new Button() { Text=String.Format("{0} {1}, {2:MM/dd/yyyy}", wt.Greet, wt.Name, wt.Visited);

这将完成您所说您想做的事情。这是否会做任何有意义的事情是另一个需要解决的问题。