2017-10-04 65 views
0

我正在使用asp:Button標記的OnClick來計算一個報告,我想將其顯示爲div標記的innerHTML。我想使用Response.WriteLine方法來返回這個html文件。 ASP.NET webforms是否提供了捕獲此響應的方法?asp:按鈕如何捕獲Response.WriteLine

我被迫改用JavaScript嗎?我在服務器端使用C#。

+0

爲什麼'Response.WriteLine'?這很愚蠢。沒有必要直接寫回應答。只需使用提供給您的控件將生成的HTML分配給div。 – mason

+0

你有什麼建議?什麼導致頁面刷新? –

+0

按鈕點擊會導致頁面發起回發。如果你不想這樣做,你需要了解AJAX和類似的技術。你有在使用什麼平臺的選擇嗎? Web Forms是一個古老的,古老的垃圾。如果您是第一次學習,我建議您學習[ASP.NET MVC](https://www.asp.net/mvc),或者如何將客戶端框架(如Angular)與服務器端端點(如[Web API](https://www.asp.net/web-api))。 – mason

回答

0

Web窗體這樣做的方法是使用控件並從後面的代碼中設置其InnerHTML。這裏是一個獨立的例子:

<%@Page Language="C#" AutoEventWireup="true" %> 

<script runat="server">  
    protected void GenerateReport(object sender, EventArgs e) 
    { 
     var reportHTML = "<p>This is a <span style='font-weight: bold;'>report!</span></p>"; 
     ReportDiv.InnerHtml = reportHTML; 
    } 
</script> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Test</title> 
    </head> 
    <body> 
     <form runat="server"> 
      <asp:Button runat="server" OnClick="GenerateReport" Text="Generate Report" /> 
      <div runat="server" id="ReportDiv"></div> 
     </form> 
    </body> 
</html>