因为电脑A在子局域网中通过一台小服务器B连接公司网络,电脑A无法直接通过ASP.NET(公司服务器上)获取自己的IP,因为用ASP.NET获取的IP都是小服务器B的,所以只能用JavaScript来获取IP。
目前调用JavaScript确实获取了IP(在Head中运行的),且将IP的值写在了TextBox中,ASP.NET无法调用。我现在用一个按钮,点击这个按钮以后获取TextBox中的值,每次获得的都是空值,后来发现,点击按钮以后,TextBox会清空,然后在网页载入完成以后才会显示IP,也就是ASP.NET先运行,然后再运行JavaScript,这样我就无法使用这个IP了,请大家帮忙阿,谢谢。

解决方案 »

  1.   

    没搞懂你,如果textbox已经从js得到ip值了,那不可能在后台取不到,是不是点按钮的时候被刷新了?
      

  2.   

    作一个隐藏域,<asp:Hidden id="hidden1" (大概是这么写吧),在javascript中获取IP值后,将IP值写入隐藏域的value属性,点击按钮后,取这个隐藏域的值。你试试。
      

  3.   

    刷新的时候刷没了,应该是服务器端没有识别到TextBox的变化,TextBox显示的IP是JavaScript在本地运行的,服务器不知道,所以每次刷新的时候没有。不知道是不是应该这样理解,呵呵。
    不管怎么样,怎么获取呢?先谢谢大家
      

  4.   

    aspx文件里
    <script>
    //获得IP后
    hidden1.value = IP值;
    </script>
    ------------------------
    <asp:Hidden id="hidden1" runat="server" />
    cs代码里
    btn_Click(object sender,EventArgs e)
    {
       IP值 = hidden1.value;
    }
      

  5.   

     if (!IsPostBack)
       {
    绑定内容;
       }
    应该是确认的时候,重新绑定页面使得控件的内容丢失了吧
      

  6.   

    在客户端用js给textbox赋值,这个服务器端是不知道的,要想得到textbox的值两种方法参考:
    cs代码中:
    Request.form["textbox控件的name属性值"];
    还有一种是AJAX来实现
    还有一种就是把这个值用其他的存放起来,比如服务器端的隐藏控件等等。