Asp.net 如何让Html链接(锚定)像LinkButton一样回发?
我想问一下,如何制作一个html锚(一个元素)或任何对象来执行回发或执行服务器端方法? 我想创建一个自定义按钮(一个用一些div包装的按钮,用于自定义按钮),我想实现OnClick,使其看起来像ASP.NET LinkButton 像Asp.net 如何让Html链接(锚定)像LinkButton一样回发?,asp.net,javascript,postback,anchor,linkbutton,Asp.net,Javascript,Postback,Anchor,Linkbutton,我想问一下,如何制作一个html锚(一个元素)或任何对象来执行回发或执行服务器端方法? 我想创建一个自定义按钮(一个用一些div包装的按钮,用于自定义按钮),我想实现OnClick,使其看起来像ASP.NET LinkButton 像 使用服务器端html控件,它是服务器端a标记 <asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
使用服务器端html控件,它是服务器端a标记
<asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
只是一个简单的链接
要做到这一点而不依赖ASP.NET,RunServerSideMethod()应该是一个javascript函数,它使用Ajax向服务器发送请求
尝试此Ajax教程:默认情况下,控件使用uu doPostBack向服务器进行回发__doPostBack获取控件的唯一ID(或者在HTML中为HTML元素的name属性)。第二个参数是要激发的命令的名称 因此,对于自定义按钮,渲染到输出流:
<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');">val</a>
在自定义按钮中,添加
IPostBackEventHandler
,这个\uuu doPostBack
语句将为您自动启动它的RaisePostBackEvent
方法。一个解决方法可能是:调用dummyButton在锚定标记的客户端事件中单击-默认情况下将调用此虚拟按钮的服务器端事件。所以,如果您将服务器端代码放在这个dummyButton服务器事件中,那么调用锚定标记客户端事件将调用这个服务器端虚拟按钮事件 代码:
只需添加锚定标记-->runat=“server”onserver click=“您的函数名”,即可解决您的问题。您还可以在实际HTML代码中使用ASP代码,如下所示
<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="<% YourASPMethod(); %>">val</a>
这将在aspx.cs文件中执行一个名为YourASPMethod()的方法。brrrr,我再也不想回到ASP.NET Webforms,向MVC致敬:)当然MVC是一个新的好解决方案,但Webforms至少在旧项目(MVC发布之前)中仍然使用,这很好,但我可以从哪里定义要运行的方法的名称?或者这应该在
IPostBackEventHandler
实现中?手动调用想要的方法,或者使用反射动态调用它。你可以完全控制实现来做你想做的事情,这就得到了,“HtmlAnchor不是一个已知的元素”这就是我要用的,这一个解决了我的问题。我的asp.net版本似乎没有HtmlAnchor(或者我不知道如何导入它)&在我看来,定制按钮有点过分了。
<a id="ancLink" href="javascript:void(0);" >back</a>
<asp:Button ID="dummyRefresh" runat="server" OnClick="BtnRefreshOnclick" style="display:none"/>
ancLink.live("click", function () {
callDummyButtonServerEvent();
});
function callDummyButtonServerEvent() {
$('input[id$=dummyRefresh]').click();
}
<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="<% YourASPMethod(); %>">val</a>