2

我正在尝试在 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());了,页面上什么都没有。我怎样才能得到这个工作。也许我错过了一些东西..请告诉我。

4

2 回答 2

2

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

于 2013-05-06T15:53:13.643 回答
1

字符串生成器中的所有内容都是服务器端控件。这意味着,如果您在呈现页面时尝试将其写出,那么您最多不会得到任何信息,或者最坏的情况是会出错,因为浏览器不知道 .NET 控件是什么。

如果您想从后面的代码中添加控件,则需要使用Page.Form.Controls.Add()或类似的东西来完成它。

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

于 2013-05-06T15:53:43.633 回答