11

我想问我如何制作一个 html 锚(一个元素)甚至任何对象来执行回发或执行服务器端方法?我想创建一个自定义按钮(用一些 div 包装来做一些自定义)并且我想实现 OnClick 看起来像 ASP.NET LinkBut​​ton?

<a href="#" onclick="RunServerSideMethod()">Just a simple link button</a>
4

6 回答 6

14

使用服务器端 html 控件,HtmlAnchor它是服务器端的一个标签。

<asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
于 2010-03-19T12:05:44.877 回答
10

默认情况下,控件使用 __doPostBack 回发到服务器。__doPostBack 获取控件的 UniqueID(或在 HTML 中,HTML 元素的 name 属性)。第二个参数是要触发的命令的名称。

因此,对于自定义按钮,渲染到输出流:

<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');">val</a>

在您的自定义按钮中,添加IPostBackEventHandler,此__doPostBack语句将RaisePostBackEvent自动为您触发其方法。

于 2010-03-19T12:13:23.713 回答
5

只需添加锚标记 --> runat="server" onServerClick="Your function name",它就可以解决您的问题。

于 2013-05-03T06:00:48.330 回答
1

一种解决方法可能是:
在锚标记的客户端事件中调用 dummyButton click - 默认情况下将调用此虚拟按钮的服务器端事件。因此,如果您将您的服务器端代码放在此 dummyButton 服务器事件中 - 调用锚标记客户端事件将调用此服务器端虚拟按钮事件。

代码:

<a id="ancLink" href="javascript:void(0);" >back</a>

<asp:Button ID="dummyRefresh" runat="server" OnClick="BtnRefreshOnclick" style="display:none"/>

Javascript:

ancLink.live("click", function () {
         callDummyButtonServerEvent();
    });

function callDummyButtonServerEvent() {

    $('input[id$=dummyRefresh]').click();   

}
于 2011-09-23T05:14:19.720 回答
0

要在不依赖 ASP.NET 的情况下执行此操作,RunServerSideMethod() 应该是一个使用 Ajax 向服务器发送请求的 javascript 函数。

试试这个 Ajax 教程:http ://www.w3schools.com/ajax/

于 2010-03-19T12:08:02.437 回答
0

您还可以在实际 HTML 代码中使用 ASP 代码,如下所示。

<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="<% YourASPMethod(); %>">val</a>

这将在 aspx.cs 文件中执行一个名为 YourASPMethod() 的方法。

于 2013-07-12T06:48:29.827 回答