updatepanel动态添加控件触发后动态添加的控件消失

水晶烟灰缸 2014-01-22 09:13:18
直接上代码

前台代码

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table>
<tr>
<td>
<asp:Button ID="btnAdd" runat="server" Text="Button" onclick="btnAdd_Click" />
<br />
<asp:TextBox ID="txtValue" runat="server"></asp:TextBox>
</td>
<td id="tdlist" runat="server">
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>


后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

public partial class TestControlAdd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

void AddOption(int count, string val)
{
//创建HTML代码
for (int i = 0; i < count; i++)
{
RadioButton rdb = new RadioButton();
rdb.ID = "opr" + i.ToString();
string an = Encoding.ASCII.GetString(new byte[] { (byte)(65 + i) });
rdb.Text = an;
if (an == val.Trim())
{
rdb.Checked = true;
}
else
{
rdb.Checked = false;
}
rdb.GroupName = "tmp";
rdb.AutoPostBack = true;
rdb.CheckedChanged += new EventHandler(rdb_CheckedChanged);
tdlist.Controls.Add(rdb);
}
}

void rdb_CheckedChanged(object sender, EventArgs e)
{
RadioButton r = (RadioButton)sender;
if (r.Checked)
{
txtValue.Text = r.Text;
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
AddOption(4, "B");//添加4个默认值选项为B
}
}


点击按钮自动添加4个RadioButton,分别位A,B,C,D四个单选按钮
默认选择B
当点击其他单选按钮时动态添加的4个单选按钮消失
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_萧萧 2014-11-18
  • 打赏
  • 举报
回复
动态生成的控件刷新就没了的 你要么把动态生成的控件移到updatepanel外面,也可以用div等容器事先生成好你需要的控件,然后控制显示隐藏
tcmakebest 2014-01-22
  • 打赏
  • 举报
回复
动态添加的控件在页面刷新后当然就没有了,解决办法这样: 动态添加控件的时候,把这些控件记录到隐藏控件中,页面回发刷新的时候,在后台重新生成。

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧