2013-05-06 101 views
2

我想建立SPGridView上aspx.cs無法呈現在頁面上

HTML輸出下面是代碼

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());,再沒有比在頁面上。我怎樣才能得到這個工作。也許我錯過了一些東西......請讓我知道。

+1

你期待它執行服務器端代碼嗎? – 2013-05-06 15:52:20

回答

2

您不能這樣動態地呈現控件;這不被支持,並將呈現爲純HTML。您必須在頁面上靜態定義它們,或者通過將它們添加到控件集合或父控件來加載它們。

1

字符串生成器中的所有內容都是服務器端控件。這意味着,如果您在渲染頁面時嘗試寫出它,您將不會收到任何內容,或者最糟糕的情況是錯誤,因爲瀏覽器不知道.NET控件是什麼。

如果你想從後面的代碼添加控件,你將需要使用Page.Form.Controls.Add()或類似的東西來做到這一點。

根據您的代碼,您可能只需在aspx頁面中包含字符串構建器的內容,並根據您的需要將Visible設置爲falsetrue