客户端按扭按了没有任何输出……<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ButtonPage.aspx.cs" Inherits="JavaScriptCallServerEvent.ButtonPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="serverButton" runat="server" onclick="serverButton_Click" Text="服务器按扭" />
        <input id="clientBtn" type="button" value="客户端按扭" onclick='javascript:<%=MyClientScript %>;' />
    </div>
    </form>
</body>
</html>using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace JavaScriptCallServerEvent
{
    public partial class ButtonPage : System.Web.UI.Page
    {
        public string MyClientScript { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            MyClientScript = Page.ClientScript.GetPostBackEventReference(serverButton, "MyButton");
        }        protected void serverButton_Click(object sender, EventArgs e)
        {
            Response.Write("我被点击了!");
        }
    }
}

解决方案 »

  1.   

        public string MyClientScript { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            MyClientScript = Page.ClientScript.GetPostBackEventReference(serverButton, "");
        }    protected void serverButton_Click(object sender, EventArgs e)
        {
            Response.Write("我被点击了!");
        }<html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button UseSubmitBehavior="false" ID="serverButton" runat="server" OnClick="serverButton_Click" Text="服务器按扭" />
            <input id="clientBtn" type="button" value="客户端按扭" onclick="<%=MyClientScript %>;" />
        </div>
        </form>
    </body>
    </html>
      

  2.   

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
            function SendData(){
                var test = "csdn";
                <%=ClientScript.GetCallbackEventReference(Page, "test", "ReceiveData", null) %>
            }
            function ReceiveData(serverData){
                alert(serverData);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Button1" type="button" value="button" onclick="SendData()" />
        </div>
        </form>
    </body>
    </html>public partial class JSCallBack : System.Web.UI.Page, ICallbackEventHandler
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }    #region ICallbackEventHandler 成员
        public string ServerData = string.Empty;
        public string GetCallbackResult()
        {
            return ServerData + " MoreQuestion";
        }    public void RaiseCallbackEvent(string eventArgument)
        {
            ServerData = eventArgument;
        }    #endregion
    }
      

  3.   

    直观的方法你可以使用ajax去调用后台的方法
      

  4.   

    ajax就是XMLhttpRequest,不是第三方组件
      

  5.   

    你可以拷贝粘贴下面的代码为aa.aspx直接测试看效果
    <%@ Page Language="C#" EnableViewState="false" %>
     
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
      private string ReturnBackValue = " 返回到客户端的内容 | ";
     
      //声明函数,用来返回到客户端。
      public string GetCallbackResult()
      {
        return ReturnBackValue;//将结果返回客户端
      }
     
      //声明一个函数,用来接收客户端的参数;函数名字不可以随便,必须是RaiseCallbackEvent才可以
      public void RaiseCallbackEvent(String eventArgument)
      {
        this.ReturnBackValue += eventArgument;
      }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title></title>
      <script type="text/javascript">
        function myfunction(arg) {
          <%=Page.ClientScript.GetCallbackEventReference(Page, "arg", "showMsg","")%>;
        }
        function showMsg(rValue) {
          alert(rValue);
        }
        alert("刷新测试");
      </script>
    </head>
    <body>
      <form id="form1" runat="server">
      <input type="button" onclick="myfunction('客户端传入的参数')" value="无刷新调用" />
      </form>
    </body>
    </html>
      

  6.   

    你有多余的代码。我尽量保留你多余的代码,只演示必要的:<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">    protected void serverButton_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "result", "alert('hi');", true);
        }    public string MyClientScript { get; set; }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.RegisterRequiresRaiseEvent(serverButton);
            MyClientScript = Page.ClientScript.GetPostBackEventReference(serverButton, "MyButton");
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="serverButton" runat="server" onclick="serverButton_Click" Text="服务器按扭" />
            <input id="clientBtn" type="button" value="客户端按扭" onclick="javascript:<%=MyClientScript %>;" />
        </div>
        </form>
    </body>
    </html>
      

  7.   

    或者也可以这样写<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">    protected void serverButton_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "result", "alert('hi');", true);
        }    public string MyClientScript { get; set; }    protected void Page_Load(object sender, EventArgs e)
        {
            MyClientScript = Page.ClientScript.GetPostBackEventReference(serverButton, "MyButton");
        }    protected override void Render(HtmlTextWriter writer)
        {
            Page.ClientScript.RegisterForEventValidation(serverButton.UniqueID, "MyButton");
            base.Render(writer);
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
             <asp:Button ID="serverButton" runat="server" onclick="serverButton_Click" Text="服务器按扭" />
            <input id="clientBtn" type="button" value="客户端按扭" onclick="javascript:<%=MyClientScript %>;" />
        </div>
        </form>
    </body>
    </html>
    想知道为什么,请自己读相关的asp.net代码,理解其机制。
      

  8.   

    其实上面两个demo,是因为我使用了RegisterStartupScript,而不是Response.Write。我从来不写 Response.Write,我也不允许别人写这种坑爹的写法。你打开asp.net页面输出到浏览器端的代码看看,你的程序输出的还是正确html吗?
      

  9.   


    按那个按扭没反应……HTML:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ButtonPage.aspx.cs" Inherits="JavaScriptCallServerEvent.ButtonPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="serverButton" runat="server" onclick="serverButton_Click" Text="服务器按扭" />
            <input id="clientBtn" type="button" value="客户端按扭" onclick='javascript:<%=MyClientScript %>;' />
        </div>
        </form>
    </body>
    </html>
    C#:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace JavaScriptCallServerEvent
    {
        public partial class ButtonPage : System.Web.UI.Page
        {
            public string MyClientScript { get; set; }        protected void Page_Load(object sender, EventArgs e)
            {
                Page.RegisterRequiresRaiseEvent(serverButton);
                MyClientScript = Page.ClientScript.GetPostBackEventReference(serverButton, "MyButton");
            }        protected void serverButton_Click(object sender, EventArgs e)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "result", "alert('"+e.ToString()+"');", true);
            }    }
    }
      

  10.   

    http://www.cnblogs.com/hjf1223/archive/2006/07/05/443761.html
    楼主看看这个对你有帮助不
      

  11.   

    楼上大神级别的都已经跟你写好了  实在不行   你可以看看jquery的ajax 
      

  12.   

    P大哥 不是Response.Write的错,而是使用Response.Write的位置不对,在Render之前,使用Response.Write肯定是在头部,坦白说RegisterStartupScript只是给Control多增加了一个控件
      

  13.   

    P哥,这个页面还得必须实现ICallBackEventHandler或者IPostBackEventHandler接口,才能进行这个页面的回发处理
      

  14.   

    客户端<input type="button" name="btnTest" value="测试"  onclick="javascript:<%=script %>;"/>
    服务端public partial class _Default : System.Web.UI.Page, IPostBackEventHandler
    {    protected string script;    protected void Page_Load(object sender, EventArgs e)
        {
            script = Page.GetPostBackEventReference(Page, "我操");
        }
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(writer);
        }    public void RaisePostBackEvent(string eventArgument)
        {
            //进行事件处理
        }
    }