本帖最后由 unling 于 2009-09-12 15:04:20 编辑

解决方案 »

  1.   

    前后台两码事,不可能这样直接调用。AJAX+Web Services实现,不过不可能像你这样获取值,得传过去。
      

  2.   

    这个问题有两种方法,可以直接掉用在前台如<%#cutstr10(Eval("wj_true").ToString())%>
        protected string cutstr10(string strChar)
        {
            //取得自定义长度的字符串
            if (Int16.Parse(strChar) >= 1)
            { return "Company/contact.aspx"; }
            else if (this.Request.Cookies["wj_User"] != null)
            { return "Company/contact.aspx"; }
            else
            { return "loginagain.aspx"; }    }
    也可以通过一个LoginValidate.ashx的文件,不过这个方法比较复杂,我就会这两种了,不知还有没有别的,高手指点啊
      

  3.   

    你的意思是后台不能
    string data1 = TextBox1.text;             //页面上的控件
    string data2 = TextBox2.text;             //页面上的控件
    这样去取的值了 得接受传递过来的参数吗?
    不但需要ajax还需要webservice吗?
      

  4.   

               function createXMLHttpRequest()
                {
                    if(window.ActiveXObject)
                    {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    else if(window.XMLHttpRequest)
                    {
                        xmlHttp = new XMLHttpRequest();
                    }            }
                //处理方法
                function CheckUserName(txt,divid)
                {
                    var username = document.getElementById("txtusername").value;
                    createXMLHttpRequest();
                    var url = "LoginValidate.ashx?divusername="+document.getElementById("txtusername").value;
                    xmlHttp.open("GET",url,true);
                    xmlHttp.onreadystatechange=ShowResult;
                    xmlHttp.send(null);
                }
      

  5.   


    在后台中这样是可以的:
    string data1 = TextBox1.Text;            //页面上的控件
    string data2 = TextBox2.Text;            //页面上的控件只要在后台的 .cs 文件中声明:
    public TextBox TextBox1, TextBox2;
    但前台 JavaScript 不能像你那样直接调用后台的。
      

  6.   

    请问楼上的
    ShowResult
    里边的内容贴出来给我看看 谢谢
      

  7.   

    会一点 ShowResult 
    里边的内容贴出来给我看看 谢谢
      

  8.   

                这是回调方法
                function ShowResult()
                {
                     if(xmlHttp.readyState==4) 
                    {
                        if(xmlHttp.status==200)
                        {
                            document.getElementById("divusername").innerHTML=xmlHttp.responseText;
                        }
                    }
    不过我的作用和你的好像不太一样,不过方法应该差不多            }
      

  9.   

    请把 LoginValidate.ashx 中的代码贴出来给我看看 谢谢
      

  10.   

    <%@ WebHandler Language="C#" Class="LoginValidate" %>using System;
    using System.Web;
    using WebBLL.hyjf;
    using System.Text.RegularExpressions;public class LoginValidate : IHttpHandler {
        
            hyjfBLL  userdal = new hyjfBLL ();    public void ProcessRequest (HttpContext context)
        {
          
                string username=context.Request.QueryString["divusername"].ToString();                username = context.Request.QueryString["divusername"].ToString();
                    checkusername(context, username);
           这是一个函数,处理前台数据的
      

  11.   

    楼主首先下载Ajax.NET Professional 
    1添加引用 AjaxPro
    2配置Web.config
    <system.web>
     <httpHandlers>
       <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
     </httpHandlers>
    </system.web>
    3修改服务端方法,使用[AjaxPro.AjaxMethos]进行申明
    4在相应的CS文件中的Page_Load方法中注册客户端JS要调用Ajax方法
    AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
      

  12.   

    象这种调用只能用Ajax调用,别无它法:
      

  13.   

    服务器怎么会允许js去直接执行它的方法?如果这都行,就没有安全性了。
    不过看起来,似乎你那个字段并不重要,只是控制下某个div的现实和隐藏,如果不设计到权限等问题,
    建议用个hiddenfield什么的控件,先在页面接受下数据。然后再用js去读取这个控件的信息。
      

  14.   

    我倒是有一个方法,楼主不妨试一试:在界面中放一个button 长度为0宽度为0(id为btn):把你的        string data1 = TextBox1.text;             //页面上的控件
            string data2 = TextBox2.text;             //页面上的控件
            string data3 = returnResult(data1, data2);//去进行一些复杂的逻辑计算的方法
                               
    放到这个button的click事件中,并不用返回值 而是把那个返回值写到一个隐藏的界面控件中(id为 hdn),你再用
     document.getElementById("btn").click();触发这个 ,再用你的
     strvalue =document.getElementById("hdn").value
      

  15.   

    AJAX不管能进行webservice的调用,同时也可以进行后台方法的调用。更多的信息可以去参考asp.net ajax
      

  16.   

    var strvalue="<%=CsharpVoid()%>";  
    或_doPostBack('','');
    或ajax异步调用
      

  17.   

    有那么复杂吗?可以在页面上加个属性,CsharpVoid去给这个值赋值,不过得在pageload执行,然后<%=%>去取值,如果js和.aspx分离,可以放到一个隐藏域里,然后取隐藏域的值