1

我试过这样,我拿了一个按钮控制,显示没有:-

<div style="display:none">         
   <asp:Button ID="loginbtn" runat="server" OnClick="loginbtn_Click" />  
  </div>

然后我通过jquery调用按钮的点击事件:-

  $("input[id$=loginbtn]").click();

在服务器端我调用按钮事件:-

protected void loginbtn_Click(object sender, EventArgs e)
 {

 }

它工作正常,但是,它重新加载页面,我需要停止它,请给我一些解决方案如何在 DNN 中从客户端调用服务器端方法

4

2 回答 2

1

在这种情况下(我假设您正在为 DotNetNuke 开发一个模块);最简单的方法是在模块控件中选中“支持部分渲染”。然后它将由更新面板包装。

Host -> Extensions -> Edit your module -> Module Definitions -> Module Controls -> Edit your module control -> Check Supports Partial Rendering

但是,如果控件已经包含用于动态行为的 JavaScript,则将控件包装在更新面板中可能会破坏控件的功能。

于 2013-07-28T07:59:35.410 回答
0

有几种方法可以做到这一点,例如,使用UpdatePanel或更改您的机制以直接将 AJAX 与 WebMethod 方法一起使用;在您考虑更多之前,让我为您的案例介绍最简单的示例。将您的内容包装在更新面板中,如下所示:

<asp:UpdatePanel runat="server">
  <ContentTemplate>
    <!-- stuff to reload here  -->
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="loginbtn" EventName="Click" />
  </Triggers>
</asp:UpdatePanel>

因此,另一种选择是使用 jQueryajax或等效项(例如post)以编程方式提交数据(而不是对 UI 进行某种宏化——这甚至可能在某些浏览器(例如 IE 版本)中不起作用)。AJAX 调用可以返回数据,您可以根据需要在适当的位置填充您的片段。

于 2013-07-25T07:43:45.697 回答