注册 登录
编程论坛 ASP.NET技术论坛

十万火急 关于Attributes.Add()方法的问题!!

guanshixin 发布于 2008-04-04 22:47, 5416 次点击
请问,当我在Button1_Click事件中加了如下代码:
protected void Button1_Click(object sender, EventArgs e)
    {
      
   this.Button1.Attributes.Add("onclick","return confirm('你已经修改了此信息,确实要保全这些修改吗?')");
        if ("如果我选了《确定》")
        {
            运行此部分程序
        }
        else//如果我选了《取消》
        {
            运行此部分程序
        }
    }
当我点击Button1时候,首先会弹出一个对话框(此对话框包含《确定》和《取消》两个选项),如果我选了《确定》那就执行if里面的程序,否则就执行else里面的程序。问题是:我怎么得到我究竟选了《确定》还是《取消》
6 回复
#2
sldtk12008-04-04 22:59
if(confirm('你已经修改了此信息,确实要保全这些修改吗?')==true)
{
}
else
{
}
试试看行不?
#3
guanshixin2008-04-05 00:02
报错
系统报的错误如下:
“当前上下文中不存在名称“confirm”    ”
#4
淡漠的茶2008-04-05 10:49
<asp:Button ID="Button1" runat="server" onClick=""/>

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        this.Button1.Attributes.Add("onclick","return confirm('你已经修改了此信息,确实要保全这些修改吗?');");
    }
}


protected void Button1_Click(object sender, EventArgs e)
{
   //如果选择确定 这里面的程序会运行。如果选择取消 这里面的程序不会运行
}

Attributes.Add 其实就是为控件加一个javascript事件处理,控件的本质就是html+css+javascript ,控件的多事件其实也是利用javascript事件冒泡原理,所以要把事件预先载入

因为是事件冒泡,一旦一个事件为fasle的话,就不可能再向下执行下面一个事件,在这里表现就是按取消后就无法进入服务端处理。所以对false的处理必须要在上一事件中处理,true也可以。如果你都想在服务端处理处理就不要用Attributes.Add,添加客户端方法

楼主你要分清客户端与服务器端
#5
guanshixin2008-04-05 18:15
明白!!
多谢“淡漠的茶”的指点。
#6
hxcan2008-08-17 11:08
顺便问一下,Attributes.Add这个函数是中的函数是吗?
#7
雪雨星风2008-08-18 09:38
e.Row.Attributes.Add("onclick", "window.close()");
1