事情是这样的我写了一个后台方法Update()public void Update()
        {
            Page.ClientScript.RegisterStartupScript(this.GetType, "update", "alert('测试')", true);
        }然后前台写了个JS代码function UpdateJs() {
            <% Update(); %>;
        }
我是动态生成的button控件!用的是lable的赋值
lblOk.Text =“<input type='button' onclick='UpdateJs()'  value='确定' />”当我运行这个页面的时候!JS就自动调用了Update()方法;弹出了“测试'”2个字!!我都没触发这个click事件!也没按这个button啊!!他就直接运行了!!求教啊!!

解决方案 »

  1.   

    不用ajax,想在前台以触发的方式直接调用后台的方法,楼主没门!
    <% Update(); %>这样的写法已经独立于前端脚本之外了,页面解释到这个位置就执行服务端脚本<%%>里的内容去了。
      

  2.   

    Quote=引用 2 楼 ycmjh2010 的回复:]
    不用ajax,想在前台以触发的方式直接调用后台的方法,楼主没门!
    <% Update(); %>这样的写法已经独立于前端脚本之外了,页面解释到这个位置就执行服务端脚本<%%>里的内容去了。
    [/Quote]难道非得ajax才能有用吗??55555555555555那我直接假一个ajax控件可以咩!!![
      

  3.   

    <% Update(); %>;
    页面加载的时候会执行仅有的一次
      

  4.   


    有什么方法可以让界面加载的时候不要加载!!然后在触发onclick事件的时候在调用吗?
      

  5.   

    前台js无刷新调用后台方法,必须用ajax啊,可以用回调方法。
      

  6.   

    我添加了AJAX  然后把东西放到了 UPdatePanel里面了  
    还是一样的错误啊
      

  7.   

    UPdatePanel 是放服务器控件的,你那个是动态创建的button.所以不行你可以查下js回调后台方法
      

  8.   

    <% Update(); %>;会在加载页面的时候执行一次。所以在页面加载的时候,就会执行Update()弹出“测试'”2个字。
    至于“<input type='button' onclick='UpdateJs()' value='确定' />”,楼主不能够通过点击确定来执行后台的Update()方法的。如果要执行的话,需要用ajax,楼主的写法是行不通的。
    还有一种方法是添加一个服务器控件,当点击input button的时候,用js触发服务器控件的click事件来调用后台方法,跨frame的时候使用较好。
      

  9.   

    你在后台定义了public 方法,在前台<% Update(); %>;就相当于运行这个方法了,你要是想直接在前台触发后台的方法,就得用ajax,最简单就是ajaxpro2.0.dll,现在你是用的微软的ajax控件的话,你动态生成的也应该是服务器端的button控件才行,而不是html控件
      

  10.   

    对了这种问题应该发到asp.net板块去,