无法在页面上呈现HTML输出

时间:2013-05-06 15:50:56

标签: asp.net html sharepoint sharepoint-2010

我正在尝试在aspx.cs上构建SPGridView

以下是代码

  StringBuilder sb = new StringBuilder();
        sb.AppendFormat("<SharePoint:SPGridView runat=\"server\" ID=\"spgridview\" AutoGenerateColumns=\"false\" AllowPaging=\"true\" AllowSorting=\"true\" Visible=\"true\">\n");
        sb.AppendFormat("<Columns>\n");
        sb.AppendFormat("<asp:TemplateField>\n");
        sb.AppendFormat("<ItemTemplate>\n");
        sb.AppendFormat("<asp:Label ID=\"lblNo\" runat=\"server\" Text=\"First\"/>\n");
        sb.AppendFormat("</ItemTemplate>\n");
        sb.AppendFormat("</asp:TemplateField>\n");
        sb.AppendFormat("<asp:TemplateField>\n");
        sb.AppendFormat("<ItemTemplate>\n");
        sb.AppendFormat("<asp:Label ID=\"lblName\" runat=\"server\" Text=\"Janaki\"/>\n");
        sb.AppendFormat("</ItemTemplate>\n");
        sb.AppendFormat("</asp:TemplateField>\n");
        sb.AppendFormat("</Columns>\n");
        sb.AppendFormat("</SharePoint:SPGridView>\n");

我试过Response.Write(sb.ToString());,网页上没有任何内容。我怎样才能使这个工作。也许我错过了什么......请让我知道。

2 个答案:

答案 0 :(得分:2)

您不能以这种方式动态呈现控件;这是不受支持的,并将呈现为纯HTML。您必须在页面上静态定义它们,或者通过将它们添加到控件集合或父控件来加载它们。

答案 1 :(得分:1)

字符串构建器中的所有内容都是服务器端控件。这意味着如果您在渲染页面时尝试将其写出来,那么您将无法获得最佳效果或在最坏的情况下获得错误,因为浏览器不知道.NET控件是什么。

如果你想从后面的代码添加控件,你需要使用Page.Form.Controls.Add()或类似的东西。

根据您的代码,您似乎可以在aspx页面中包含字符串构建器的内容,并根据您的需要将Visible设置为falsetrue