{

button.Click += new EventHandler(this.btnCheck_Click);

}private void btnCheck_Click(object sender, EventArgs e)
        {
Button btn=(Button )sender ;
 string strtext="";

if (!string.IsNullOrEmpty(strtext))
                    btn.Attributes.Add("onclick","javascript:if(!confirm('" + strtext + "')){return false;}");
         }跟踪发现最后那句增加弹出窗口的那句执行了,但是没有弹出来,为什么呢??

解决方案 »

  1.   

    你上面的语句只是给它增加一onclick的事件,并没有执行这个事件的代码,可能下次再点击时就会执行了
      

  2.   

    直接在前台添加验证就可以了<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"  OnClientClick="return confirm('确认要删除么?');"/>
      

  3.   

    首先是1楼说的问题,你这只是添加了事件,但没有触发,下次点才可以出来。
    其次,根据一定判断,你的strtext不为空才会添加事件,所以要
    string strtext="aaa";
    最后,你的逻辑有问题,既然前面已经button.Click += new EventHandler(this.btnCheck_Click);
    说明你已经获得了button控件,何不在这里添加事件,又绕来绕去的,如果仅从熟悉角度来看也就罢了,如果实际应用那可就大大不妥了
      

  4.   

    谢谢楼上的回答!
    之所以把弹出窗口放到这个事件里添加,是因为要判断strtext,而strtext的值只有在btnCheck_Click事件里才能得到,如果只是放到方法而没有添加到按钮事件里的话是获取不到strtext的值的,请问这样能实现吗?