Внедрить элемент html в статический веб-метод без использования Response.Write () - PullRequest
0 голосов
/ 30 октября 2018

У меня есть отчет SSRS, который позволяет мне включать статические веб-методы. Я хотел бы добавить какой-нибудь небольшой javascript или заставить его запускаться при загрузке страницы. У меня есть доступ к текущему объекту HttpContext, но нет прямого доступа к каким-либо элементам управления.

Можно ли найти элемент управления, чтобы я мог ввести литеральный элемент управления, содержащий мой javascript / html?

Я не могу использовать Response.write (), так как я считаю, что SSRS использует Ajax. Я получаю следующую ошибку:

Sys.WebForms.PageRequestManagerParserErrorException: 
The message received from the server could not be parsed. 
Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled. 
Details: Error parsing near '<button>Click Me!</b'.

А вот и мой код:

Public Function Helloworld(ByVal s As String) AS String
try
System.Web.HttpContext.Current.Response.Write("<button>Click Me!</button>")
catch ex as exception
Return ex.message
end try
Return "AAA"
End Function

Есть ли какой-нибудь способ для меня ввести здесь произвольный html?

EDIT:

Вот .aspx для рассматриваемой страницы. Я полагаю, он был автоматически сгенерирован SSRS:

<%@ Register TagPrefix="RS" Namespace="Microsoft.ReportingServices.WebServer" Assembly="ReportingServicesWebServer" %>
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Microsoft.ReportingServices.WebServer.ReportViewerPage" EnableEventValidation="false" %>
<asp:literal runat="server" id="docType"></asp:literal>
<html>
 <head id="headID" runat="server">
  <asp:literal runat="server" id="httpEquiv"></asp:literal>
  <title><%= GetPageTitle() %></title>
 </head>
 <body style="margin: 0px; padding: 0px; overflow: hidden;">
  <form style="width:100%; height: 100%; margin: 0px; padding: 0px;" runat="server" ID="ReportViewerForm">
   <asp:ScriptManager ID="AjaxScriptManager" AsyncPostBackTimeout="0" runat="server" />
    <table cellspacing="0" cellpadding="0" width="100%" height="100%"><tr height="100%"><td width="100%">
   <RS:ReportViewerHost ID="ReportViewerControl" runat="server" />
    </td></tr></table>
  </form>
  <script language="javascript" type="text/javascript">
Sys.WebForms.PageRequestManager.prototype._destroyTree = function(element) {
    var allnodes = element.getElementsByTagName('*'),
        length = allnodes.length;
    var nodes = new Array(length);
    for (var k = 0; k < length; k++) {
        nodes[k] = allnodes[k];
    }
    for (var j = 0, l = nodes.length; j < l; j++) {
        var node = nodes[j];
        if (node.nodeType === 1) {
            if (node.dispose && typeof (node.dispose) === "function") {
                node.dispose();
            }
            else if (node.control && typeof (node.control.dispose) === "function") {
                node.control.dispose();
            }
            var behaviors = node._behaviors;
            if (behaviors) {
                behaviors = Array.apply(null, behaviors);
                for (var k = behaviors.length - 1; k >= 0; k--) {
                    behaviors[k].dispose();
                }
            }
        }
    }
}
  </script>
 </body>
</html>
...