Asp.net:页面中有多个iFrame

时间:2011-09-26 09:57:34

标签: asp.net

我的asp.net页面中有多个iframe。但是所有这些iframe都是通过循环加载并且总共具有相同的页面。 这些所有iframe都在最后加载,循环完成之后因为这些我在所有iframe中得到最后一个循环数据。

该怎么做。

这是我在循环中创建iframe的主页代码:

 for (int iCount = 0; iCount < rcChartSubject.Items.Count; iCount++)
    {
SetChart();
    if (iCount.Equals(1))
                {
                    divRadarChart1.InnerHtml = "";
                    divRadarChart1.InnerHtml = "<iframe class='RadarSize' src='RadarChart.aspx' frameborder='0' width='680px' height='480px'></iframe>";
                    divRadar1.Visible = true;
                }
                else if (iCount.Equals(2))
                {
                    divRadarChart2.InnerHtml = "";
                    divRadarChart2.InnerHtml = "<iframe class='RadarSize' src='RadarChart.aspx' frameborder='0' width='680px' height='480px'></iframe>";
                    divRadar2.Visible = true;
                }
    }

在SetChart()方法中,我设置全局变量来生成图表。但是如果for循环是4次,那么iframe页面最后加载4次而不是逐个加载for循环,因此我得到循环全局变量的最后一次。

在RadarChart.aspx页面上,我正在使用如下全局变量值:

protected void Page_Load(object sender, EventArgs e)
    {
 ltRadar.Text += string.Format("<input type='hidden' name='chxl' value='0:|{0}|1:|{1} |' />", strRadarChartSubjectLabel, strRadarChartAxisValue);
}

1 个答案:

答案 0 :(得分:3)

当循环完成执行时,所有Iframe将最后加载页面。因此,如果您使用全局变量并在iframe页面中设置这些变量的值,那么当时您将在所有变量中包含最后一个数据。最好使用查询字符串,您可以传递所有变量的值并在页面中设置这些值。所以所有页面都会有单独的数据加载。

试试这个:

<iframe class='RadarSize' src='RadarChart.aspx?q1=val1&q2=val2' frameborder='0' width='680px' height='480px'></iframe>