我正在尝试在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());
,网页上没有任何内容。我怎样才能使这个工作。也许我错过了什么......请让我知道。
答案 0 :(得分:2)
您不能以这种方式动态呈现控件;这是不受支持的,并将呈现为纯HTML。您必须在页面上静态定义它们,或者通过将它们添加到控件集合或父控件来加载它们。
答案 1 :(得分:1)
字符串构建器中的所有内容都是服务器端控件。这意味着如果您在渲染页面时尝试将其写出来,那么您将无法获得最佳效果或在最坏的情况下获得错误,因为浏览器不知道.NET控件是什么。
如果你想从后面的代码添加控件,你需要使用Page.Form.Controls.Add()
或类似的东西。
根据您的代码,您似乎可以在aspx页面中包含字符串构建器的内容,并根据您的需要将Visible
设置为false
或true
。