c#在一个button事件中动态添加了另一个button,sender怎么是第一个button啊
在前一个button的事件中创建了另一个button,代码如下protectedvoidbtnAddOneRecord_Click(objectsender,EventA...
在前一个button的事件中创建了另一个button,代码如下
protected void btnAddOneRecord_Click(object sender, EventArgs e) //这是托控件的第一个button
{
//下面是动态创建的button
Button btndelete = new Button();
btndelete.Text = "删除此行";
btndelete.ID="btndelete"+rowCount.ToString();
btndelete.Click +=new System.EventHandler(this.btndelete_Click);
btndelete_Click(sender,e);
}
然后有一个事件;
protected void btndelete_Click(object sender, EventArgs e)
{
((Button)(sender)).Text="我是发送者"
Response.Write("deeeeeeeeeeeef");
}
现在我点击了第一个button后,第一个button的text变成"我是发送者",
点动态创建的button还没有用?
这是肿么回事? 展开
protected void btnAddOneRecord_Click(object sender, EventArgs e) //这是托控件的第一个button
{
//下面是动态创建的button
Button btndelete = new Button();
btndelete.Text = "删除此行";
btndelete.ID="btndelete"+rowCount.ToString();
btndelete.Click +=new System.EventHandler(this.btndelete_Click);
btndelete_Click(sender,e);
}
然后有一个事件;
protected void btndelete_Click(object sender, EventArgs e)
{
((Button)(sender)).Text="我是发送者"
Response.Write("deeeeeeeeeeeef");
}
现在我点击了第一个button后,第一个button的text变成"我是发送者",
点动态创建的button还没有用?
这是肿么回事? 展开
4个回答
展开全部
btndelete_Click(sender,e);
你把第一个button传递出去了,还直接手动用代码点了一下新生成的按钮
改成btndelete_Click(btndelete,e);
你把第一个button传递出去了,还直接手动用代码点了一下新生成的按钮
改成btndelete_Click(btndelete,e);
追问
不行啊,第二个button的text确实改了该来,可是是在点击第一个button时改过来,
点击第二个还是没有反应
我的天啊,这是肿么了???
追答
网页的postback会导致事件失效,就是每次page_load的时候必须重新注册,你试试把新生成的button存到一个postback不会丢失的东西里,比如session之类的,然后在page_load里面循环注册一下click
展开全部
//下面是动态创建的button
Button btndelete = new Button();
btndelete.Text = "删除此行";
btndelete.ID="btndelete"+rowCount.ToString();
btndelete.Click +=new System.EventHandler(this.btndelete_Click);
btndelete_Click(btndelete,e);
Button btndelete = new Button();
btndelete.Text = "删除此行";
btndelete.ID="btndelete"+rowCount.ToString();
btndelete.Click +=new System.EventHandler(this.btndelete_Click);
btndelete_Click(btndelete,e);
追问
不行啊,第二个button的text确实改了该来,可是是在点击第一个button时改过来,
点击第二个还是没有反应
我的天啊,这是肿么了???
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
……把btndelete_Click里面的东西弄成方法
protected void click(){
((Button)(sender)).Text="我是发送者"
Response.Write("deeeeeeeeeeeef");
}
protected void btndelete_Click(object sender, EventArgs e)
{ click();
}
在btnAddOneRecord_Click调用click()这个方法就行了
protected void click(){
((Button)(sender)).Text="我是发送者"
Response.Write("deeeeeeeeeeeef");
}
protected void btndelete_Click(object sender, EventArgs e)
{ click();
}
在btnAddOneRecord_Click调用click()这个方法就行了
追问
不行啊,第二个button的text确实改了该来,可是是在点击第一个button时改过来,
点击第二个还是没有反应
我的天啊,这是肿么了???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你传入的sender就是第一个按钮
调整一下就可以了:
btndelete_Click(btndelete,e);
调整一下就可以了:
btndelete_Click(btndelete,e);
追问
不行啊,第二个button的text确实改了该来,可是是在点击第一个button时改过来,
点击第二个还是没有反应
我的天啊,这是肿么了???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询