如何在不丢失PostBack功能的情况下将自己的JavaScript链接到客户端
因此,我在Scott Hanselman的博客上阅读了这些Asp.Net采访问题,然后我遇到了这个问题。任何人都可以弄清他在说什么。
解决方案
我认为他要问的是我们如何将javascript函数与ASP.NET post back功能结合使用。
即如何使用自己的Javascript触发控件的事件。
ASP.NET类库包含在System.Web.UI.Page类中找到的ClientScript类,使我们可以通过编程方式将Javascript添加到ASP.NET页。
它包含一个名为" GetPostBackEventReference"的方法,该方法将生成ASP.NET用于触发连接到Web控件的事件的__doPostBack脚本。
希望有道理
意思是这样的吗:
在后面的代码中:
protected string GetPostBack() { return ClientScript.GetPostBackEventReference(this, null); }
并在aspx中:
<a href="javascript:<%=GetPostBack() %>">Click here to postback</a>
<asp:LinkButton ID="lbEdit" CssClass="button" OnClientClick="javascript:alert('do something')" onclick="OnEdit" runat="server">Edit</asp:LinkButton>
OnClientClick属性意味着我们可以添加一些JavaScript而不丢失PostBack功能,这将是我在采访中的答案。
Explain how PostBacks work
回发是Web协议之上的抽象,它模仿无状态协议上的有状态行为。
, on both the client-side
在客户端,通过JavaScript调用和隐藏字段(用于存储页面上所有控件的状态)来实现回发。
and server-side.
服务器端经历了事件的生命周期,生命周期的一部分是视图状态的水合,以维持页面上所有控件的状态,并根据传递给__doPostBack调用的参数来引发事件在客户端
How do I chain my own JavaScript into the client side without losing PostBack functionality?
取决于需要什么。 99%的时间中最简单的方法是使用asp:hiddenfield在客户端和服务器端之间进行通信。对于极端情况,我们想进入Exenders并通过MS ajax API在javascript中操纵viewstate / controlstate / clientstate。巨大的学习曲线和很多陷阱非常痛苦,通常使用隐藏字段并手动调用__doPostBack就足够了
这就是我要回答的要点。有关__doPostBack的更多信息,一个快速的google会为我们提供很多结果(对于懒惰的人,这是第一个热门网站http://aspalliance.com/895)