gpt4 book ai didi

c# - 发送两个文本框而不是动态发送一个

转载 作者:太空狗 更新时间:2023-10-30 01:22:55 24 4
gpt4 key购买 nike

我从之前的一篇文章中获得这段代码,内容是根据按钮的点击事件动态制作面板。出于某种原因,它给了我两个文本框,我在破译代码时遇到了问题。自从我处理这种 C# 以来已经有一段时间了。这可能是一个简单的修复,但是就像我说的,已经有一段时间了。ASP.net 代码只是一个按钮,因此无需粘贴。

C#:

public partial class Testing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Add any controls that have been previously added dynamically
for (int i = 0; i < TotalNumberAdded; ++i)
{
AddControls(i + 1);
}

// Attach the event handler to the button
Button1.Click += new EventHandler(Button1_Click);


}

protected void Button1_Click(object sender, EventArgs e)
{
// Increase the number added and add the new label and textbox
TotalNumberAdded++;
AddControls(TotalNumberAdded);

}
private void AddControls(int controlNumber)
{
var newPanel = new Panel();
var newLabel = new Label();
var newTextbox = new TextBox();

// textbox needs a unique id to maintain state information
newTextbox.ID = "TextBox_" + controlNumber;

newLabel.Text = "Nature Of Accident";

// add the label and textbox to the panel, then add the panel to the form
newPanel.Controls.Add(newLabel);
newPanel.Controls.Add(newTextbox);
form1.Controls.Add(newPanel);
}

protected int TotalNumberAdded
{
get { return (int)(ViewState["TotalNumberAdded"] ?? 0); }
set { ViewState["TotalNumberAdded"] = value; }
}



}

最佳答案

从页面加载中删除 Button1.Click 行。

 Button1.Click += new EventHandler(Button1_Click);

如果您的 .aspx 按钮看起来像这样:

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

那么这意味着当您单击该按钮时,您的代码将通过 Page_Load,这意味着它将为 Button1_Click 执行您的事件处理程序,然后它将进一步深入到您的实际事件,即 Button1_Click 再次,这就是为什么你得到 2 个文本框的原因。

关于c# - 发送两个文本框而不是动态发送一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12517662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com