【问题标题】:Returning a CollapsiblePanelExtender over/through ajax/javascript通过/通过 ajax/javascript 返回一个 CollapsiblePanelExtender
【发布时间】:2009-07-08 13:37:28
【问题描述】:

我希望能够通过 javascript 及其面板等返回以编程方式生成的可折叠面板扩展器。我已经让面板和相关表格通过就好了,但是当我尝试连接 cpe 时它会中断。并返回错误:

cpe 面板等是由 WebService 生成的,我试图让 JS 编写 webservice 动态返回到特定字段的内容

Microsoft JScript runtime error: Sys.Net.WebServiceFailedException: The server method 'Sub_Menu_Helper' failed with the following error: System.InvalidOperationException-- Page cannot be null. Please ensure that this operation is being performed in the context of an ASP.NET request.

                {
                    Label somelabel = new Label();
                    somelabel.ID = somenumber.ToString();
                    somelabel.Text = somenumber.ToString();
                    subpnlContent.Controls.Add(somelabel);
                    ++somenumber;
                }

                CollapsiblePanelExtender cpeMenuLast = new CollapsiblePanelExtenderEx();
                cpeMenuLast.ID = "subcpe" + strMenuId + strParentHierarchyIds;
                cpeMenuLast.TargetControlID = "subpnlContent" + strParentMenuId + "_" + strMenuId;
                cpeMenuLast.ExpandControlID = "cellContent" + strParentMenuId + "_" + strMenuId;
                cpeMenuLast.CollapseControlID = "cellContent" + strParentMenuId + "_" + strMenuId;
                cpeMenuLast.Collapsed = bCollapsed;
                cpeMenuLast.TextLabelID = strMenuName;
                cpeMenuLast.ExpandedText = m_strButtonLabelHide;
                cpeMenuLast.CollapsedText = m_strButtonLabelShow;
                cpeMenuLast.ImageControlID = "imglnk" + strMenuId;
                cpeMenuLast.CollapsedImage = "~/App_Themes/default/nbExpand.gif";
                cpeMenuLast.ExpandedImage = "~/App_Themes/default/nbCollapse.gif";
                cpeMenuLast.SuppressPostBack = true;
                cpeMenuLast.ScrollContents = false;

                //Add Everything
                cellSubMenu.Controls.Add(subpnlContent);
                cellSubMenu.Controls.Add(cpeMenuLast);
                row.Cells.Add(cellSubMenu);
                tbl.Rows.Add(row);

                using (StringWriter sw = new StringWriter(sb))
                {
                    using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                    {
                        tbl.RenderControl(tw);
                    }
                }

我该如何解决这个问题?

【问题讨论】:

    标签: javascript ajax collapsiblepanelextender


    【解决方案1】:

    看起来您需要一个带有ScriptManagerPage 对象来渲染CollapsiblePanelExtender,这是有道理的,因为您需要一些脚本才能使其正常工作。

    所以也许你可以尝试以下方式来渲染你的表格:

    var page = new Page();
    page.Controls.Add(new ScriptManager());
    page.Controls.Add(tbl);
    var writer = new StringWriter();
    HttpContext.Current.Server.Execute(page, writer, false);
    return writer.ToString();
    

    奥利弗

    【讨论】:

      猜你喜欢
      • 2013-08-15
      • 2013-12-02
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 2016-08-02
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多