如何在客户端调用服务器端的方法?即如何在javascript脚本中调用服务器端的方法?
比如我在ASP.net页面上放置了一个IMG图片控件,点击时它先调用客户端javascript函数进行一些验证逻辑,然后我想在javascript函数中调用后台执行实际操作的方法,该怎么办?

解决方案 »

  1.   

    如果你在.cs中的处理方法为:private void abc(){};
    js中:
    <script>
    function a()
    {
       a=<%=abc()%>;
    }
    </script>
      

  2.   

    1 在页面上放一个Text为空的LinkButton后台代码写在该LinkButton的点击事件内
    2 在Javascritp内 __doPostBack('LinkButton的ClientID','');调用
      

  3.   

    可参考
    http://community.csdn.net/Expert/topic/4739/4739198.xml?temp=.6139032
      

  4.   

    我用a=<%=abc()%>;这个方法试了试,可每当页面加载时就调用abc()方法,
    还是把我的源文件贴出来吧:
    首先我用javascript定义了如下函数
    <script language=javascript>
    //新建文件夹
    function CreateFolder()
    {
      var folderName = prompt("请输入新建的文件夹的名称:","");
      if(folderName && (folderName != ""))
    {
    Form1.newFolderName.value = folderName;
    _doPostBack('buttonNewFolder','')
    }
    }function _doPostBack(eventTarget,eventArgument)
    {
    var theform;
    if(window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
    {
    theform = document.forms["Form1"];
    }
    else
    {
    theform = document.Form1;
    }
    Form1._EVENTTARGET.value = eventTarget.split("$").join(":");
    Form1._EVENTARGUMENT.value = eventArgument;
    Form1.submit();
    }
    /script>//然后页面中有一个IMG图片标签他点击时调用CreateFolder()函数
    <IMG style="CURSOR: hand" onclick="CreateFolder();" alt="新建文件夹" src="images/newFolder.gif">//又添加了一个imagebutton控件,他的宽度和高度都设置为0
    <asp:imagebutton id="buttonNewFolder" runat="server" ImageUrl="images/newFolder.gif" ToolTip="新建文件夹" Width="0px" Height="0px" CausesValidation="False"></asp:imagebutton>
    //定义了两个隐藏标签如下:
    <input type="hidden" name="_EVENTTARGET">
    <input type="hidden" name="_EVENTARGUMENT">//然后定义了imagebutton的单击事件
    private void buttonNewFolder_Click(sender object,System.Web.UI.ImageClickEventArgs e)
    {
       //.......代码省略
    }
    我的目的是点击IMG标签时弹出提示输入信息框,然后根据输入的信息在调用imagebutton控件的单击事件实现业务逻辑,可按上面写的就是不调用imagebutton控件的单击事件,
    各位高手又和高见?我哪里写错了还是思路有问题?请指点迷津。
      

  5.   

    你把简单的东西做得异常复杂。运行一下下面这个页面:<%@ Page Language="C#" %><script runat="server">    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), "sayhello",
                "alert('服务器端程序执行完毕');", true);
        }
    </script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="http://www.csdn.net/Images/logo_csdn.gif"
                OnClick="ImageButton1_Click" OnClientClick="alert('客户端脚本执行');" /></div>
        </form>
    </body>
    </html>