2012-02-14 77 views
0

我正在使用以下代碼向Umbraco中的用戶控件添加表。Umbraco用戶控件中的Response.Write()清除所有頁面內容

Try 
    Dim DS As DataSet = GetData() 
    If DS.Tables(0).Rows.Count > 0 Then 
     Response.Write("<form><table>") 
     For Each row In DS.Tables(0).Rows 
      Response.Write("<tr>") 
      Response.Write("<td> <a onclick=alert('" & row("ID") & "')>" & row("Date") & "</a></td>") 
      Response.Write("<td>" & " - " & "</td>") 
      Response.Write("<td>" & row("Amount") & "</td>") 
      Response.Write("</tr>") 
     Next 
     Response.Write("</table></form>") 
     Response.End() 
    End If 
Catch ex As Exception 
    Response.End() 
End Try 

但是循環完成後會發生(不出現錯誤 - 我已經經歷了整個事情臺階),唯一的內容留在頁面的表格。

我敢肯定,我真的很愚蠢,我遺漏了。任何幫助?

謝謝!

回答

0

Response.Write()在這種情況下不是怪,它是你的Response.End()調用。它不會清除剩餘的頁面內容,但會阻止其運行。

HttpResponse.End方法
發送所有當前緩衝輸出到客戶端,停止頁面的執行,並引發EndRequest事件。

http://msdn.microsoft.com/en-us/library/system.web.httpresponse.end.aspx

刪除它們(或者至少是一個try塊,如果一個在catch語句意),而應該修復它。

+0

嗨,謝謝你的回覆。我最初沒有Response.End(),這導致網頁在完成循環後完全刷新。所以它會(簡要地)在空白頁面上顯示代碼生成的html(表格),然後切換回原始頁面。 – 2012-02-15 11:38:33

+0

我已經放棄了這種方法,而我正在使用一個ASP數據綁定中繼器,它正在完成這項工作。 – 2012-02-15 11:39:23