从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中的Jquery调用服务器端方法

在这种情况下(我假设您正在为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调用可以返回数据,并且您可以根据需要在适当的位置填充片段。