我这样尝试,我拿一个按钮控件,显示为无: -
<div style="display:none">
<asp:Button ID="loginbtn" runat="server" OnClick="loginbtn_Click" />
</div>
然后我通过jquery调用按钮的click事件: -
$("input[id$=loginbtn]").click();
在服务器端我调用按钮事件: -
protected void loginbtn_Click(object sender, EventArgs e)
{
}
它工作正常,但是,它重新加载页面,我需要停止它,请给我一些解决方案如何在DNN中从客户端调用服务器端方法
答案 0 :(得分:1)
在这种情况下(我假设你正在为DotNetNuke开发一个模块);最简单的方法是在模块控件中选中“支持部分渲染”。然后它将被更新面板包装。
主机 - &gt;扩展程序 - &gt;编辑您的模块 - &gt;模块定义 - &gt;模块控制 - &gt;编辑模块控件 - &gt;选中支持部分渲染
但是,如果控件已包含动态行为的JavaScript,则将控件包装在更新面板中可能会破坏控件的功能。
答案 1 :(得分:0)
有几种方法可以做到这一点,比如使用UpdatePanel
或改变你的机制直接使用AJM和WebMethod方法;在您考虑更多之前,让我为您的案例介绍最简单的示例。将您的内容包含在更新面板中,如下所示:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<!-- stuff to reload here -->
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="loginbtn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
那么,另一个选择是使用jQuery的ajax
或等价物(例如post
)以编程方式提交数据(而不是稍微宏观化UI - 这在某些浏览器中甚至可能不起作用)比如IE的版本。 AJAX调用可以返回数据,您可以根据需要填充您的部分。