刚学会了一种传值方法,代码如下:Default.cs
protected void Button1_Click(object sender, EventArgs e)
{
int i = 888;
Response.Redirect("Default2.aspx?value=" + i);
}
Default2.cs中
protected void Page_Load(object sender, EventArgs e)
{
string a = Request["value"].ToString();
}普通的两个界面用这个方法挺好用。但是放在以前弄过的一个程序中就出现问题了。说一下那个程序原理:
有三个.aspx文件—>Default Default2 Default3.
Default2和Default3的关系比较特殊—>
Default2的div内的数据来源于Default3的Page_Load事件(在Default3的Page_Load事件内写些对数据库读取数据的代码,然后将生成的图显示在Default2的div内)。
我现在用上面的那种方法在Default3的界面内接值,但是在行—>string a = Request["value"].ToString();提示—>未将对象引用设置到对象的实例。总结一下: 点击Default 的Button1,页面跳转到Default2(跳转到Default2以后会自动触发Default3的Page_Load事件)
我实际想要的是—> 把Default的值传给Default3。可能出现那个错误提示的原因是Default3只是一个数据源,并不是一个真正的网页的原因。希望高手指点..
万分感激!!!!!

解决方案 »

  1.   

    我把三个Default都写一下
    Default.cs protected void Button1_Click(object sender, EventArgs e)
        {
                Response.Redirect("TodayEnergyConsume.aspx?value=" + siteId);
                Response.Redirect("TodayEnergyConsumeOFC.aspx?value=" + siteId); 
        }Default2.cs    protected void Page_Load(object sender, EventArgs e)
        {
            string a = Request.QueryString["value"];
        }
    Default3.cs protected void Page_Load(object sender, EventArgs e)
        {
            //主页传过来的值
            string a = Request.QueryString["value"] ?? "";//取到的是""
           //string a = Request.QueryString["value"]; //取到的是null
        }跳转到Default2时,断点看了下,Default2能接到值,然后程序自动触发Default3的Load事件,也设置了下断点,发现Default3就得不到值取到的是null
      

  2.   

    我就想把Default传过去的值 在Default3的load事件内能接受到,但就是收不到,是不是这种方法不适合?
      

  3.   

    string a = Request.QueryString["value"] ?? "";这个写法 是保证 代码不出异常
    --------------------------------------------------你贴下你现在的代码
      

  4.   

    protected void Button1_Click(object sender, EventArgs e)
        {
                Session["value"] = siteId
                Response.Redirect("TodayEnergyConsume.aspx?value=" + siteId);
               //这个没用的 Response.Redirect("TodayEnergyConsumeOFC.aspx?value=" + siteId); 
        }那就放到session里边
    protected void Page_Load(object sender, EventArgs e)
        {
            //主页传过来的值
            string a = (string)Session["value"];
          
        }
    接收值的页面都这样就行了
      

  5.   


    protected void Button1_Click(object sender, EventArgs e)
        {
                Session["value"] = siteId
                Response.Redirect("TodayEnergyConsume.aspx);//这个地方就不用传值了
               //这个没用的 Response.Redirect("TodayEnergyConsumeOFC.aspx?value=" + siteId); 
        }
      

  6.   

    其它的和1楼一样。 这里我忽略了一个东西不知道是不是这个原因。
    Default2 和Default3是在前台关联的 , 代码如下<head runat="server">
        <title>OpenFlashChart</title>
         <script src="jquery-1.2.6.min.js" type="text/javascript"></script>
        <script type="text/javascript" src="swfobject.js"> </script>
    <script type="text/javascript" language="javascript">
    swfobject.embedSWF("open-flash-chart.swf",
    "my_chart", //放置Chart的div的id
    "550", //chart寬度
    "350",//chart高度
    "9.0.0",//flash播放器版本
    "expressInstall.swf",
    { "data-file": "datafile/Default.aspx"}
    );
         </script>
         
         <body>
        <form id="form1" runat="server">
        <div id ="my_chart" style="height: 15px" >
        
        </div>
        </form>
    </body>
    </head>看到里面的{ "data-file": "datafile/Default3.aspx"}了吧,意思就是div的数据源是datafile文件夹下的Default3.aspx
    PS:div的id="my_chart" 和上面一致的 所以和Default3.aspx 关联起来了 
      

  7.   


    <head runat="server">
        <title>OpenFlashChart</title>
         <script src="jquery-1.2.6.min.js" type="text/javascript"></script>
        <script type="text/javascript" src="swfobject.js"> </script>
    <script type="text/javascript" language="javascript">
    swfobject.embedSWF("open-flash-chart.swf",
    "my_chart", //放置Chart的div的id
    "550", //chart寬度
    "350",//chart高度
    "9.0.0",//flash播放器版本
    "expressInstall.swf",
    { "data-file": "datafile/Default3.aspx"}
    );
         </script>
         
         <body>
        <form id="form1" runat="server">
        <div id ="my_chart" style="height: 15px" >
        
        </div>
        </form>
    </body>
    </head>
    修正下七楼 { "data-file": "datafile/Default.aspx"}——>{ "data-file": "datafile/Default3.aspx"}
      

  8.   

    把一个int类型的值从form1传给form3 用Session就能传到了