[英]How do I find a Form from another class in c#
我有以下aspx页面,该页面具有一系列用于获取参数的下拉框,以及一系列iFrame,这些iFrame会根据参数加载单个图表。 页面的主体如下所示:
<body>
<form id="bmBehaviorForm" runat="server">
<div class="row">
<div runat="server">
<asp:DropDownList ID="ddSchoolYear" AutoPostBack="true" OnSelectedIndexChanged="ddValueChanged" runat="server"></asp:DropDownList>
<asp:DropDownCheckBoxes ID="ddSchoolType" UseButtons="true" UseSelectAllNode="true" OnSelectedIndexChanged="ddValueChanged" runat="server">
<Style2 DropDownBoxBoxWidth="200" SelectBoxCssClass="selectHeight" />
<Texts SelectBoxCaption="School Type" />
</asp:DropDownCheckBoxes>
<asp:DropDownCheckBoxes ID="ddSchools" UseButtons="true" UseSelectAllNode="true" OnSelectedIndexChanged="ddValueChanged" runat="server">
<Style2 DropDownBoxBoxWidth="350" SelectBoxCssClass="selectHeight" />
<Texts SelectBoxCaption="Schools" />
</asp:DropDownCheckBoxes>
<asp:DropDownCheckBoxes ID="ddGrades" UseButtons="true" UseSelectAllNode="true" RepeatColumns="2" RepeatDirection="Vertical"
OnSelectedIndexChanged="ddValueChanged" runat="server">
<Style2 DropDownBoxBoxWidth="150" SelectBoxCssClass="selectHeight" />
<Texts SelectBoxCaption="Grades" />
</asp:DropDownCheckBoxes>
<asp:DropDownCheckBoxes ID="ddEvent" UseButtons="true" UseSelectAllNode="true" OnSelectedIndexChanged="ddValueChanged" runat="server">
<Style2 DropDownBoxBoxWidth="400" DropDownBoxBoxHeight="5000" SelectBoxCssClass="selectHeight" />
<Texts SelectBoxCaption="Behavior Events" />
</asp:DropDownCheckBoxes>
<asp:DropDownCheckBoxes ID="ddResolution" UseButtons="true" UseSelectAllNode="true" OnSelectedIndexChanged="ddValueChanged" runat="server">
<Style2 DropDownBoxBoxWidth="400" DropDownBoxBoxHeight="5000" SelectBoxCssClass="selectHeight" />
<Texts SelectBoxCaption="Resolutions" />
</asp:DropDownCheckBoxes>
</div>
</div>
<div class="row rowPaddingTop">
<iframe name="iName_iSchools" id="iSchools" style="border: none;" width="775px" height="500px"
src="behaviorbySchool.aspx"></iframe>
<iframe name="iName_iGrades" id="IGrades" style="border: none;" width="775px" height="350px"
src="behaviorbyGrade.aspx"></iframe>
<iframe name="iName_iMonths" id="IMonths" style="border: none;" width="775px" height="350px"
src="behaviorbyMonth.aspx"></iframe>
<iframe name="iName_iLocations" id="ILocations" style="border: none;" width="775px" height="350px"
src="behaviorbyLocation.aspx"></iframe>
<iframe name="iName_iDemographicsYTD" id="IDemographicsYTD" style="border: none;" width="800px" height="400px"
src="behaviorbyDemographics.aspx?ytd=1"></iframe>
<iframe name="iName_iDemographicsMTH" id="IDemographicsMTH" style="border: none;" width="800px" height="400px"
src="behaviorbyDemographics.aspx?ytd=0"></iframe>
</div>
</form>
在每个iFrame的背后代码中,我想引用调用表单中的下拉框以获取选定的值。 我一直在尝试下面各种形式的代码,但是我的语法不正确。 我怎样才能做到这一点?
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms;
namespace DMC.BM
{
public partial class behaviorBySchool : System.Web.UI.Page
{
refData rd = new refData();
protected void Page_Load(object sender, EventArgs e)
{
form1 frm = (form1)FindControl("bmBehaviorForm");
}
}
}
编辑在获得以下出色的答案和澄清后,我认为我要做的是用javascript替换iFrame来构建我的图。 我正在使用Highcharts,但最近发现了dotnet Highcharts-dotnet Highcharts是我在每个iFrame中构建的。 我想我会放弃这一点,只使用基于javascript的Highcharts构建图表,这将解决我的所有问题。
您尝试做的事是不可能的。 至少以您当前拥有的方式。 ASP.NET不知道iframe中的内容。 iframe是纯粹的客户端想法。
您是否真的要拥有iframe,还是只是想拥有一些可重用的代码/内容,您可以从后面的代码中访问这些代码/内容? 如果是后者(几乎可以肯定是您想要的),则应将.aspx页面放入ASP.Net UserControls。 完成之后,您就可以按照我认为的方式访问这些控件。
这些形式的实例不在服务器上同时存在。 即使它们做到了,它们之间也没有任何联系。
将iframe
表单需要的所有数据放在您分配给iframe.src
属性的网址的查询字符串中。 然后,您将可以在iframe
页面的C#代码中以Request["ytd"]
访问这些数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.