我的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);
}
答案 0 :(得分:3)
当循环完成执行时,所有Iframe将最后加载页面。因此,如果您使用全局变量并在iframe页面中设置这些变量的值,那么当时您将在所有变量中包含最后一个数据。最好使用查询字符串,您可以传递所有变量的值并在页面中设置这些值。所以所有页面都会有单独的数据加载。
试试这个:
<iframe class='RadarSize' src='RadarChart.aspx?q1=val1&q2=val2' frameborder='0' width='680px' height='480px'></iframe>