我想做一个左右框架网页,框架的左页面是一个包含treeview控件的asp.net网页,右页面是一个包含javascript代码的html文件,左边的treeview里的节点都是日期,比如点击“2011年6月3日12时”这个节点,就传输一个“2011060312”这个参数到右边的html文件中的javascript代码中去,应该如何实现才好呢?

解决方案 »

  1.   

    页面传值,在C#中接到值后给公共变量。
    然后javascript中可以<%=变量名%>
      

  2.   

    也可以页面传值后用控件的value给js。
      

  3.   

    还发了两个帖点击左边URL转个值.......比如传一个:param = 2011060312左边接收页在。Load事件中。Request.Params["param "] 接收值---------------------------------如果前台JS要用。在Load事件外声明个public string str = string.Empty;Load事件中str = Request.Params["param "];
    前台JS :var str = "<%=str%>";
      

  4.   


    //在HTML中用JS接收参数用到的函数
    function getParameter(param)
    {
    var query = window.location.search;
    var iLen = param.length;
    var iStart = query.indexOf(param);
    if (iStart == -1)
       return "";
    iStart += iLen + 1;
    var iEnd = query.indexOf("&", iStart);
    if (iEnd == -1)
       return query.substring(iStart);return query.substring(iStart, iEnd);
    }//使用的时候:var temp = getParameter("传过来的参数");//必须得xx.htm?xx=xx这样用啊
      

  5.   

    先介绍一下JS中处理URL的方法:
    网址示例:http://localhost/test/test.htm?id=1
    <script languge=javascript>   
    alert(window.location.pathname);   --返回   /test/test.htm    
    alert(window.location.search);     --返回   ?id=1   
    alert(window.location.href);       --返回   http://localhost/test/test.htm?id=1   
    </script> 
     
    ---------------------------------
    location对象 
    含有当前URL的信息. 
    属性 
    href 整个URL字符串.  
    protocol 含有URL第一部分的字符串,如http:  
    host 包含有URL中主机名:端口号部分的字符串.如//www.zzcn.net/server/  
    hostname 包含URL中主机名的字符串.如http://www.zzcn.net/ ; 
    port 包含URL中可能存在的端口号字符串.  
    pathname URL中"/"以后的部分.如~list/index.htm  
    hash "#"号(CGI参数)之后的字符串.  
    search "?"号(CGI参数)之后的字符串.
     
    在HTML中用JS接收参数用到的函数
    function getParameter(param)
    {
    var query = window.location.search;
    var iLen = param.length;
    var iStart = query.indexOf(param);
    if (iStart == -1)
       return "";
    iStart += iLen + 1;
    var iEnd = query.indexOf("&", iStart);
    if (iEnd == -1)
       return query.substring(iStart);return query.substring(iStart, iEnd);
    }使用的时候:var temp = getParameter("传过来的参数");必须得xx.htm?xx=xx这样用啊。呵呵,,,
      

  6.   

    最简单的就是点击 把值赋一个隐藏控件 JS去取这个隐藏控件的VALUE就好
      

  7.   

    这跟asp.net一点关系也没有。这是html的知识。在frameset中,使用链接的target属性,来控制另外一个frame的导航。
      

  8.   

    具体地说,你的treeview上的节点值应该绑定为一个<a>标签,其target属性用来指示右边frame,其href用来指示url(包括url参数,比如2011060312)。treenode的节点值可以写任何html(而不是普通的文本),就好象是label的值一样。
      

  9.   

    还是没有出来。left.aspx页面的值取得了值:2011060312,并传给了右边的网页,在右边的网页,是这样写的:
          protected void Page_Load(object sender, EventArgs e)
          {
                if (IsPostBack)
                {
                    if (Session["strTime"] != null)
                    {
                        sTime= Session["strTime"].ToString();
                    }
                }
          }
    以前的网页都是这样写,均能获得传递过来的值,现在好像只能在网页加载时运行一次,那时还没有点击left.aspx,等点击left.aspx后,发现这段代码也不能运行了,所以javascript里的代码也一直运行不下去,这是怎么回事呢?是不是页面要重新加载?