我在UpdatePanel
内有一个控件。 UpdatePanel
具有与内部控件关联的AsyncPostBack
触发器。这很好用。
我有另一个包含SSRS ReportViewControl
的控件,我希望根据上面提到的UpdatePanel
的回发事件的结果来条件隐藏。
ReportViewerControl
不在UpdatePanel
内,而我希望保持这种方式。如何根据另一个控件中ReportViewerControl
的回发事件隐藏UpdatePanel
?
我假设如果我将ReportViewerControl
放在UpdatePanel
内,很多问题都会出现,任何人都知道吗?
答案 0 :(得分:1)
您可以在更新面板内容模板中创建一个脚本,并隐藏控制表单javascript。
<script type="text/javascript">
Sys.Application.Add_load(MyFunctionThatHides);
</script
答案 1 :(得分:1)
ReportViewerControl不在UpdatePanel中,我会 喜欢这样做。
我做了一个简单的伎俩。我创建了另一个Updatepanel,并将文字控制端放在更新面板上,此更新面板代码位于&#34;您要隐藏的控件上&#34;
类似这样的事情
<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Always" >
<ContentTemplate>
<asp:Literal runat="server" ID="literal1"></asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>
然后在Code中我注入了CSS
类似这样的事情
literalDvControl.Text = "<style> #YourControlID{ display:none;}</style>";
这似乎有效。基本上字面控制是注入样式标记,浏览器很快就会做出反应。
答案 2 :(得分:0)
在服务器上处理Async AJAX调用之后,在将响应返回给客户端/浏览器之前,您可以使用以下代码
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowHideReportViewerJSScript", <JS code to show/hide reportviewer>, true);
我假设您在ASPX页面上放置了scriptmanager
答案 3 :(得分:0)
UpdatePanel
。 (你不能让当前的那个更大,但是制作第二个应该不会引起问题。)让第二个更新面板设置与触发器相同的按钮。 (您可以使用更新面板之外的触发器,您无法更新更新面板之外的内容。)如果更新是有条件的(您有时仅在单击按钮时更改内容),则可以设置只触发第二个面板成为隐藏按钮,您在第一个按钮点击处理程序的代码中Click
。