2011-08-09 89 views
0

我正在從一個數據庫表中返回一個將顯示問題和答案(可能一次5個,也許7個)的weboage。問題將分別顯示在一個div中,並將相關答案顯示在另一個div中。該問題將有一個圖標「顯示答案/隱藏答案」在asp.net中動態填充div

我該如何去創建一個div,然後用表中的值填充它?

感謝

回答

1

我會使用中繼器。

1.創建數據源從您的數據庫

<asp:sqlDataSource Id="sqldsQuestionsAnswers" ... /> 

2.創建中繼器連接到數據源提取數據:什麼在<itemTemplate>標籤的每一行返回

<asp:repeater DataSourceId="sqldsQuestionsAnswers" runat="server"> 
<itemTemplate> 
    <div> 
    <%# Eval("question") %> 
    <hr/> 
    <%# Eval("answer") %> 
    </div> 
</itemTemplate> 
</asp:repeater> 

中繼器會顯示什麼通過你的查詢。
因此,如果您的查詢返回如下2個問題:

問題-------------答案
------------------ -----------------
question1?---------- answer1
question2?---------- answer2

輸出爲:

<div> 
question1? 
<hr/> 
answer1 
</div> 
<div> 
question2? 
<hr/> 
answer2 
</div> 

我希望它可以幫助...

+0

您的迴應非常有幫助,但客戶必須點擊圖像圖標「顯示答案」以查看答案。他們有能力點擊相同的圖像來隱藏答案。我可以在中繼控制器中進行顯示/隱藏嗎? – DotNetRookie

+1

@DotNetRookie - 當然可以,但最好的方法是在javascript中編寫顯示/隱藏部分 –

+0

就像喬爾說的那樣。使用JavaScript顯示/隱藏答案 –

1

我們需要知道更多有關如何獲取你的問題的數據和頁面的其餘部分的情況下,但你可以(粗略按優先順序排列),在這裏做了幾件事情:

  • 綁定您的數據到<asp:Repeater >控制(或網格控件的甚至一)
  • 構建自定義或用戶控制,以使您的問題,並減少您的網頁上
  • 構建您所需的HTML作爲一串代碼並設置它以<asp:Panel >控制(面板呈現爲div標籤)。如果您希望能夠在不重新加載整個頁面(AJAX)的情況下刷新div,則可以使用<asp:UpdatePanel >
  • 在代碼中構建所需的html,並通過<%= %><%: %>蜂蜇或Response.Write()方法直接寫入響應。
+0

的數據是有選擇statem一個簡單的存儲過程包含所有行的一個表。至於從數據庫獲取數據,我正在處理這部分 – DotNetRookie