string rl;    public void Page_Load(object sender,EventArgs e)
    {        StreamReader sr = File.OpenText(Server.MapPath("article/vc.txt"));       rl = sr.ReadLine;
             sr.Close();
    }
    public string hh()
    {  return(rl);
    }   我第一次在本论坛发帖,求各位程序员高人们指点!
我这个程序的作用是:
(1)首先定义一个字符串 rl ,
(2)然后在page_load事件函数中给rl 赋予一段从外面读取文本的值,就是rl等于文本内容
(3)定义公共字符串hh,在里面返回rl
这个公用字符串hh,是用来在前台页面中的javascript代码中接收的,那部分已经测试成功,即前台JS代码
用<%=hh()%>接收hh中的字符,然后用这个字符创建textNode,并赋予html元素。总的功能就是读取文本并嵌入html元素。其余的部分都是对的,但问题就在aspx.cs中得到上面这段代码中,明眼人都看出来了,在page_load函数中赋予rl=sr.ReadLine() 的值,在函数外面不起作用,函数以外rl未赋值,所以hh中的rl相当于为空,这就是我现在的矛盾,怎么把page_load中赋好值的rl变量 导出或者使他怎么传递到外面,以便使hh中的rl是等于文本的?  怎样修改程序,搭个桥接个线···asp.net求助

解决方案 »

  1.   

    Refer:
    http://www.cnblogs.com/insus/articles/2036271.html
      

  2.   

       public void Page_Load(object sender,EventArgs e)
        {
             if(!IsPostBack)
             {
            StreamReader sr = File.OpenText(Server.MapPath("article/vc.txt"));       rl = sr.ReadLine;
                 sr.Close();
              }
        }
      

  3.   

    另外 string rl; 这个最小要设置成protect设置成 public string rl; 也行
      

  4.   

    2楼的高人的博客我正在学习,是有用的方法,有待尝试~~
    假如还是沿用我原来的思路,也就是我们不管外面的js代码,只探讨一下在这一段后台代码中
    怎么让page_load中赋值好的rl ,能在这个page_load函数以外起作用?有没有什么代码可以做到这个
      

  5.   

    后台:
    StreamReader sr = File.OpenText(Server.MapPath("article/vc.txt"));
    this.Literal1.Text = "jsVariable=\"" + sr.ReadLine+ "\";";
    前台: 9      <script language="javascript" type="text/javascript">
    10 <!--
    11     //宣告一个变量,方便调用
    12     var jsVariable ;
    13     //在Javascript使用WebControl Literal 可以调用aspx.cs需要的值。
    14     <asp:Literal id="Literal1" runat="server" />    
    15     //下面是调用变量。当然你的处理代码不是简单的如下只抛出信息而已。
    16      alert(jsVariable);
    17 
    18 // -->
    19     </script>
    懂了?
      

  6.   

    3,4楼的说的也帮助我清晰了一些。其实public string hh(){return(rl)}
    这句完全是蛋疼, 直接把string rl 设置为 public就行了,现在代码简化如下了 public  string rl;  public void Page_Load(object sender, EventArgs e)
      {
          if (!IsPostBack)
          {          StreamReader sr = File.OpenText(Server.MapPath("article/vc.txt"));          rl = sr.ReadLine();          sr.Close();
          }  }
      

  7.   


    public string url
        {
            get
            {
                object o = ViewState["url"];
                return o == null ? string.Empty : o.ToString();
            }
            set
            {
                ViewState["url"] = value;
            }
        }
      public void Page_Load(object sender,EventArgs e)     

     url="123123123";
    }
      

  8.   

       通过用lzw345907453 ,和火影忍者兄的方法,现在解决了开始提出的在page_load以外使用赋值后的rl 变量问题:
    一开始就设置rl为 public,最后就可以在页面前台中引用赋值后的rl了,而且也读出了文本。但是一个新问题是只能用ReadLine()方法读出一行,如果换成用ReadToEnd()读出全部文本,就不行读不出来。所以我只有再试试t101lian和insus 说的那种<asp:Literal >技术····