2009-07-08 7 views
0

Ich möchte in der Lage sein, einen programmgesteuert generierten reduzierbaren Panel-Extender über Javascript zusammen mit seinem Panel usw. zurückzugeben. Ich habe das Panel und die damit verbundenen Tabellen gut durchgegangen, aber wenn ich versuche, das cpe anzuhängen, bricht es. und gibt einen Fehler zurück:Einen CollapsiblePanelExtender über/durch ajax/javascript zurückgeben

Den cpe-Panel und so werden von einem WebService generaged und ich versuche, JS zu bekommen zu schreiben, was die webservice zu einem bestimmten Feld zurück dynamisch

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); 
        } 
       } 

Wie kann ich das beheben?

Antwort

0

Sieht aus, als ob Sie ein Page Objekt mit einer ScriptManager benötigen, um die CollapsiblePanelExtender zu rendern, was sinnvoll ist, da Sie ein Skript benötigen, damit es richtig funktioniert.

Vielleicht können Sie die folgende Art und Weise versuchen, Ihren Tisch zu machen:

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(); 

Oliver

Verwandte Themen