从Dotnetnuke中的Jquery调用服务器端方法
本文关键字:服务器端 方法 调用 Jquery Dotnetnuke 中的 | 更新日期: 2023-09-27 18:25:02
我试过这样,我用了一个按钮控制,但显示为无:-
<div style="display:none">
<asp:Button ID="loginbtn" runat="server" OnClick="loginbtn_Click" />
</div>
然后我通过jquery调用按钮的点击事件:-
$("input[id$=loginbtn]").click();
在服务器端I调用按钮事件中:-
protected void loginbtn_Click(object sender, EventArgs e)
{
}
它工作正常,但是,它重新加载页面,我需要停止它,请给我一些解决方案,如何在DNN 中从客户端调用服务器端方法
在这种情况下(我假设您正在为DotNetNuke开发一个模块);最简单的方法是在模块控件中选中"支持部分渲染"。然后它将被一个更新面板包装。
主机->扩展->编辑模块->模块定义->模块控制->编辑模块控制->检查是否支持部分渲染
但是,如果控件已经包含用于动态行为的JavaScript,则将控件包装在更新面板中可能会破坏控件的功能。
有几种方法可以做到这一点,例如,使用UpdatePanel
或将机制更改为直接使用AJAX和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调用可以返回数据,并且您可以根据需要在适当的位置填充片段。