0

我的 Default.aspx 页面中有一个树形视图菜单,Parameter.aspx 页面中有一组带有多个控件的面​​板。Parameters.aspx 被导入到 iframe 中的 Default 中。根据用户选择的树节点,Parameters.aspx 中的某些面板应该是可见的或隐藏的。例如,如果用户选择第一个节点,则面板 4 是隐藏的,但如果用户选择第二个节点,则所有面板都是可见的。(我将它们分开是因为Parameters.aspx 会执行回发,这会导致每次选择treeNode 时都会打开一个新选项卡)。我试过 < iframe id="iframe" runat="server" src="Parameters.aspx?Param1=<%=treeview_reportName%>" class="noba" scrolling="no">

然后用查询字符串调用它,但我得到一个变量不存在错误。当我尝试传递一个会话时,当我从 Parameters.aspx 调用它时它总是返回 null 后面的所有代码都在 C# 中

这是 Default.aspx:

    <asp:TreeView ID="treeReport" runat="server" DataSourceID="XmlDataSource1" 
                    ImageSet="Arrows" NodeWrap="True" Width="250px" 
                    LeafNodeStyle-NodeSpacing="2.5px" Font-Names="Arial,Helvetica,sans-serif"
                    OnSelectedNodeChanged="treeReport_SelectedNodeChanged">
                    <DataBindings>
                        <asp:TreeNodeBinding DataMember="ReportTitle" ValueField="Name" 
                            PopulateOnDemand="True" Target="_self"/>
                        <asp:TreeNodeBinding DataMember="ChildReport" ValueField="Value" 
                            PopulateOnDemand="True" Target="_self"/>
                        <asp:TreeNodeBinding DataMember="Reports" ValueField="#Name" Target="_self" />
                    </DataBindings>
                    <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                    <LeafNodeStyle NodeSpacing="2px" />
                    <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" 
                        HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
                    <RootNodeStyle Font-Bold="True" Font-Size="8pt"/>
                    <ParentNodeStyle Font-Bold="True" />
                    <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" 
                        HorizontalPadding="0px" VerticalPadding="0px" />
</asp:TreeView>

树视图代码隐藏是

protected void treeReport_SelectedNodeChanged(object sender, EventArgs e)
        {
            string treenodeText = treeReport.SelectedNode.Text;
            string treeview_reportName = "summary";
            switch (treenodeText)
            {
                case "Overall incident analysis":
                    treeview_reportName = "overall";
                    break;
                case "All incidents":
                    treeview_reportName = "summary";
                    break;
                default:
                    treeview_reportName = "overall";
                    break;
            }

            Session["ReportGenerate"] = treeview_reportName;
        }

和Parameters.aspx

<asp:Panel ID="pn1" runat="server" Width="610px" Visible="true" CssClass="project-content" >
 //Some controls here
</asp:Panel>

<asp:Panel ID="pn2" runat="server" Width="610px" Visible="true" CssClass="project-content" >
 //Some controls here
</asp:Panel>

<asp:Panel ID="pn3" runat="server" Width="610px" Visible="true" CssClass="project-content" >
 //Some controls here
</asp:Panel>

<asp:Panel ID="pn4" runat="server" Width="610px" Visible="true" CssClass="project-content" >
 //Some controls here
</asp:Panel>
4

3 回答 3

0

我认为使用 Session 在页面之间传递参数只能作为最后的手段。我认为在这种情况下查询字符串是一个更好的选择。

一种选择是在 SelectedNodeChange 回发事件中设置 iframe 控件的 src 属性。您需要确保 iframe 控件具有 runat=server 属性。请参阅以下代码:

 protected void treeReport_SelectedNodeChanged(object sender, EventArgs e)
 {
        string treenodeText = treeReport.SelectedNode.Text;
        string treeview_reportName = "summary";
        switch (treenodeText)
        {
            case "Overall incident analysis":
                treeview_reportName = "overall";
                break;
            case "All incidents":
                treeview_reportName = "summary";
                break;
            default:
                treeview_reportName = "overall";
                break;
        }

        iframe.Attributes.Add("src", 
             string.Format("Parameters.aspx?Param1={0}", treeview_reportName));
 }
于 2013-04-02T02:32:51.760 回答
0

在我的版本中,我需要从女巫页面知道我到 Ifarme,所以我在我去 iframe 的页面中使用它,我有这个

 <iframe runat="server" id="YourID"  name="YOURname" src="MY_Frame.aspx?source_page=Mypage"></iframe>

在我放置的 Frame 的 C# 中(在 Page_Load 中)

String SourcePage = Request.QueryString["source_page"].ToString();

你得到(SourcePage =MYpage)

希望对你有帮助

于 2017-09-14T09:03:18.313 回答
-1
                Mensaje = "Se envio una notificación al Agente: ";
                HtmlControl contentPanel1 = (HtmlControl)this.PnlError.FindControl("Iframe1");
                contentPanel1.Attributes["src"] = "../webMPH/wGeneroEnvio.aspx?lblMensaje=" + Mensaje.Trim()
                                                                           + "&lblUsuario=" + NombreAgente
                                                                           + "&lblMail=" + MailAgente;
于 2019-03-07T00:47:03.090 回答