2014-05-01 49 views
0

我正在爲我的網站創建一個迷你cms。我想創建一個頁面管理員,讓用戶創建頁面並向他們的頁面添加元標記。所以,我創建了一個SQL Server數據庫表,這些列:動態插入元標籤 - Asp.net/SQL服務器

[PageName](primary key) 
    ,[Body] - used to pull the html of the page from the sql database 
    ,[Title] 
    ,[Description] - meta description 
    ,[Keywords] - meta keywords 

我使用的頁面名稱列創建查詢字符串。到目前爲止,我可以讓身體顯示,但沒有一個元信息。這是我到目前爲止有:

<asp:Repeater runat="server" ID="Repeater1" DataSourceID="BodyContent"> 
    <ItemTemplate> 
     <asp:Label ID="lblPage" runat="server" Text='<%# Eval("Body") %>' /> 
    </ItemTemplate> 
</asp:Repeater> 

因此,例如,我的查詢字符串將/c.aspx?pagename=test - 這通過正確的,但沒有別的拉的主體內容。

SqlDataSource

<asp:SqlDataSource ID="BodyContent" runat="server" 
    ConnectionString="<%$ ConnectionStrings:testDb %>" 
    SelectCommand="SELECT [PageName], [Body], [Title], [Description], [Keywords] FROM [PageAdmin] WHERE ([PageName] = @PageName)"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="PageName" QueryStringField="PageName" Type="String" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

我該怎麼做拉從數據庫標題,關鍵字和描述的一樣嗎?

感謝

+0

檢查我的答案 –

回答

0

您可以在CMS中的代碼文件中添加meta標籤

Page.Title = "Your Page title"; 
//Page description 
HtmlMeta pagedesc = new HtmlMeta(); 
pagedesc.Name = "Description"; 
pagedesc.Content = textbox2.Text; 

Header.Controls.Add(pagedesc); 
//page keywords 
HtmlMeta pagekeywords = new HtmlMeta(); 
pagekeywords.Name = "keywords"; 

pagekeywords.Content = textbox1.Text; 
Header.Controls.Add(pagekeywords); 

使用文本框添加meta關鍵字,另一個用於meta標籤的描述。用逗號分隔每個元關鍵字。

+0

這些不是來自數據庫,但。例如,如果我有一個名爲aboutus的頁面名稱,然後標題是「關於我們的示例」當用戶瀏覽到/c.aspx?pagename=aboutus時,我希望頁面標題爲「關於我們的示例」 – user3545217

0

他們已經憑藉執行的查詢被包含在SqlDataSource內;

SELECT [頁面名稱],[體],[標題],[描述],[關鍵詞]

然後,可以參考它們以相同的方式;

<ItemTemplate> 
     <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("Title") %>' /> 
    </ItemTemplate> 
+0

例如,如果我想拉的稱號,我會把「<%#的eval(‘標題’)%>」 user3545217

+0

我都試過,但我得到一個錯誤,因爲我必須把這在頭上。 – user3545217