.net 给动态增加的控件写方法

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:13:46
for (int i = 0; i < strans.Length; i++)
{
Label labAns = new Label();
labAns.Text = "备选答案" + (i+1).ToString()+":";
TextBox txtSinAns = new TextBox();
txtSinAns.ID = "txtSinAns" + i.ToString();
Button btnNewDelete = new Button();
btnNewDelete.Text = "删除";
btnNewDelete.ID = "btnNewDelete" + i.ToString();
btnNewDelete.Click += new EventHandler(this.BtnClick);
//btnNewDelete.Command += new CommandEventHandler(this.BtnClick);
txtSinAns.Text = strans[i];
PaAns.Controls.Add(labAns);
PaAns.Controls.Add(new LiteralControl("   "));
PaAns.Controls.Add(txtSinAns);
PaAns.Controls.Add(btnNewDelete);

代码没有什么问题,看看有没有生成删除按钮,我这边试下是可以的,或者你可以吧strans写成数字3试试,祝你好运。

楼下的,客户端代码本身会被先执行的,所以跟你说的解决方法无关的。

============================
放在其他地方?你指的是放哪呢? 页面刷新又会执行一次Load方法,如果你动态添加控件的方法未被执行到,肯定就无法显示控件了。

这个是一定的 当你点删除按钮的时候根据回调机制它向后台回调 就会刷新页面
所以alert事件还没还得及触发呢

解决办法
btnNewDelete.UseSubmitBehavior = false;//让删除按钮不提交
btnNewDelete.OnClientClick = "bClick()";//调用前台的js方法
/*前台js*/
<script language="javascript">
function bClick(){
alert("get it!");
}
</script>