我现在有一个需求,在页面上 有个 html控件 (非服务器控件),我想要实现点击它弹出下载提示,并执行下载方法。我有两种方案:
1,后台写了个下载方法(方法已经测试完成),但不知道如何 在前台 html控件的 onclick 事件中调用2,用js写个下载方法,直接在 onclick 事件里执行 (JS版的文件下载方法不知道怎么写 )(文件在服务器上,那个路径我会通过参数传到方法中。。)麻烦高手指教谢谢了

解决方案 »

  1.   


    // 需要标识为WebMethod  
    [System.Web.Services.WebMethod] 
    // 注意,要让前台调用的方法,一定要是public和static的  
    public static string aaa(string name) 

        string result = "Hello:" + name;
        return result;
    } <script type="text/javascript"> 
            function btnClick(){ 
                // 调用页面后台方法,前面跟方法所需的参数,接着是方法回调成功时要执行的js函数,最后一个是方法回调失败时要执行的js函数 
                PageMethods.aaa("you",funReady,funError); 
            }         
            // result 就是后台方法返回的数据 
            function funReady(result){ 
                alert(result); 
            } 
            // err 就是后台方法返回的错误信息 
            function funError(err){ 
                alert("Error:" + err._message ); 
            } 
         </script>
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
            <input type="button" onclick="btnClick()" value="test" />  方法2:
        
        function Show()
        {
          var v = "中国";
          var s = '<%=CsharpVoid("'+v+'") %>';  // 你好!“+V+”
          alert(s);
        }    protected string CsharpVoid(string strCC)
        {
           strCC = "你好!" + strCC;
           return strCC;
        }<input type="button" onclick="Show()" value="hhhh" />
      

  2.   

    1楼的例子很好。另外,如果你前台没什么动作的话,直接onclick=后台的方法名即可。。
      

  3.   

    当然,这样的话控件要Runat=server