2011-11-28 26 views
0

我想從一個.ashx處理程序文件寫入一個.aspx頁面的html塊。在處理程序文件中,我試圖寫一個服務器標記通過Response.Write服務器控件

<asp:updatepanel id="UpdatePanel6" childrenastriggers="True" updatemode="Always" runat="server"> 
<contenttemplate> 
<ajaxtoolkit:rating id="Rating6" autopostback="True" emptystarcssclass="Empty" filledstarcssclass="Filled" waitingstarcssclass="Saved" starcssclass="ratingItem" cssclass="ratingStar" currentrating="2" maxrating="5" runat="server"> </ajaxtoolkit:rating> 
</contenttemplate> 
</asp:updatepanel> 

但是,這不會顯示在相應的.aspx頁面上。當我在Firebug檢查它,我看到的代碼塊存在,而不是執行件,它應該是這樣的

<div id="UpdatePanel11"> 
<div id="Rating11" class="ratingStar"> 
<input id="Rating11_RatingExtender_ClientState" type="hidden" value="2" name="Rating11_RatingExtender_ClientState"> 
<a id="Rating11_A" style="text-decoration:none" title="2" href="javascript:void(0)"> 
<span id="Rating11_Star_1" class="ratingItem Filled" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_2" class="ratingItem Filled" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_3" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_4" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
<span id="Rating11_Star_5" class="ratingItem Empty" style="float:left;">&nbsp;</span> 
</a> 
</div> 

有人能幫助我什麼,我在這裏失蹤的指針?謝謝 !

+0

要改寫,是否有一種方法可以執行寫入網頁的服務器控件。說,我想通過Response.Write寫一個asp.net服務器控件到網頁。 – Skynet

回答

1

你不能這樣做。 Response.Write直接注入輸出流,無需任何處理。 .aspx頁面通過構建控件樹(由.aspx文件中的文字標記和控件標記組成)並可能在代碼中動態添加更多控件來生成其輸出。然後按照自上而下的順序評估樹的節點,以生成HTML,然後通過Response.Write調用將其發送回瀏覽器。

與.aspx頁面不同,.ashx處理程序不處理控件 - 沒有控件樹。您有責任閱讀請求並自行生成原始響應文本。

這聽起來像你試圖動態創建控件;在這種情況下,請使用.aspx文件並將控件添加到代碼隱藏文件中的樹中。

0

正如Carl所說,這將會有點難以完成。如果你需要做的只是創建一個動態評分的東西,我會建議使用page.Controls.Add併爲它們添加處理程序,以便它們可以在用戶點擊它們時處理。如果您需要幫助,請告訴我們。