这是我的代码,我想知道如何在用户点击删除按钮时添加一些代码来删除动态控件(文本框和按钮)。请帮帮我T_T
使用System; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.UI; 使用System.Web.UI.WebControls; 使用System.Globalization;
public partial class _Default:System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
CreateTextBox();
}
else
{
Session["arrayTextBox"] = null;
Session["arrayButton"] = null;
}
}
protected void CreateTextBox()
{
List<TextBox> arrayTextBox = new List<TextBox>();
List<Button> arrayButton = new List<Button>();
if (TextBox1.Text != "")
{
if (Session["arrayTextBox"] != null)
{
arrayTextBox = (List<TextBox>)Session["arrayTextBox"];
arrayButton = (List<Button>)Session["arrayButton"];
}
TextBox aTextBox = new TextBox();
aTextBox.ID = "aTextBox" + arrayTextBox.Count.ToString();
aTextBox.Text = TextBox1.Text;
Button ButtonDelete = new Button();
ButtonDelete.ID = "ButtonDelete" + arrayButton.Count.ToString();
ButtonDelete.Text = "Delete";
//if (TextBox2.Text != "")
//{
// String red = TextBox2.Text.ToString().Substring(0, 2);
// String green = TextBox2.Text.ToString().Substring(2, 2);
// String blue = TextBox2.Text.ToString().Substring(4, 2);
// int r = int.Parse(red, NumberStyles.AllowHexSpecifier);
// int g = int.Parse(green, NumberStyles.AllowHexSpecifier);
// int b = int.Parse(blue, NumberStyles.AllowHexSpecifier);
// aTextBox.BackColor = System.Drawing.Color.FromArgb(r, g, b);
//}
arrayTextBox.Add(aTextBox);
arrayButton.Add(ButtonDelete);
for(int i=0;i<arrayTextBox.Count;i++)
{
PlaceHolder1.Controls.Add(arrayTextBox[i]);
PlaceHolder1.Controls.Add(arrayButton[i]);
PlaceHolder1.Controls.Add(new LiteralControl(@"<br />"));
}
//ButtonDelete.Click += new EventHandler(ButtonDelete_Click);
Session["arrayTextBox"] = arrayTextBox;
Session["arrayButton"] = arrayButton;
TextBox1.Text = "";
//TextBox2.Text = "";
}
}
}
答案 0 :(得分:0)
foreach arrayTextBox并获取TextBox,然后使用PlaceHolder1.Controls.Remove(Textbox)
答案 1 :(得分:0)
您可以使用以下代码。 注意:我使用按钮的CommandArgument来存储相应文本框的id,然后在btn click事件中使用Page.Controls.Remove:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
CreateTextBox();
}
else
{
Session["arrayTextBox"] = null;
Session["arrayButton"] = null;
}
}
protected void ButtonDelete_Click(object Sender, EventArgs e)
{
Button btn = Sender as Button;
if(btn != null)
{
String szTextControlID = btn.CommandArgument;
Control ctl = Page.FindControl(szTextControlID);
Page.Controls.Remove(ctl);
Page.Controls.Remove(btn);
}
}
protected void CreateTextBox()
{
List<TextBox> arrayTextBox = new List<TextBox>();
List<Button> arrayButton = new List<Button>();
if (TextBox1.Text != "")
{
if (Session["arrayTextBox"] != null)
{
arrayTextBox = (List<TextBox>)Session["arrayTextBox"];
arrayButton = (List<Button>)Session["arrayButton"];
}
TextBox aTextBox = new TextBox();
aTextBox.ID = "aTextBox" + arrayTextBox.Count.ToString();
aTextBox.Text = TextBox1.Text;
Button ButtonDelete = new Button();
ButtonDelete.ID = "ButtonDelete" + arrayButton.Count.ToString();
ButtonDelete.CommandArgument = aTextBox.ID;
ButtonDelete.Text = "Delete";
ButtonDelete.Click += new EventHandler(ButtonDelete_Click);
//if (TextBox2.Text != "")
//{
// String red = TextBox2.Text.ToString().Substring(0, 2);
// String green = TextBox2.Text.ToString().Substring(2, 2);
// String blue = TextBox2.Text.ToString().Substring(4, 2);
// int r = int.Parse(red, NumberStyles.AllowHexSpecifier);
// int g = int.Parse(green, NumberStyles.AllowHexSpecifier);
// int b = int.Parse(blue, NumberStyles.AllowHexSpecifier);
// aTextBox.BackColor = System.Drawing.Color.FromArgb(r, g, b);
//}
arrayTextBox.Add(aTextBox);
arrayButton.Add(ButtonDelete);
for(int i=0;i<arrayTextBox.Count;i++)
{
PlaceHolder1.Controls.Add(arrayTextBox[i]);
PlaceHolder1.Controls.Add(arrayButton[i]);
PlaceHolder1.Controls.Add(new LiteralControl(@"<br />"));
}
Session["arrayTextBox"] = arrayTextBox;
Session["arrayButton"] = arrayButton;
TextBox1.Text = "";
//TextBox2.Text = "";
}
}