0

所以我在 Scott Hanselman 的博客上阅读了这些 Asp.Net面试问题,我遇到了这个问题。任何人都可以阐明他在说什么。

4

4 回答 4

4
<asp:LinkButton ID="lbEdit" CssClass="button" 
    OnClientClick="javascript:alert('do something')" 
    onclick="OnEdit"  runat="server">Edit</asp:LinkButton>

OnClientClick属性意味着您可以在不丢失 PostBack 功能的情况下添加一些 JavaScript,这将是我在采访中的回答。

于 2008-09-19T08:53:11.383 回答
2

解释 PostBacks 的工作原理

回发是 Web 协议之上的抽象,它在无状态协议上模拟有状态行为。

, 在客户端

在客户端,回发是通过 javascript 调用和隐藏字段来实现的,这些隐藏字段存储页面上所有控件的状态。

和服务器端。

服务器端经历事件的生命周期,该生命周期的一部分是视图状态的水合以维持页面上所有控件的状态,以及基于传递给 __doPostBack 调用的参数引发事件在客户端

如何在不丢失 PostBack 功能的情况下将自己的 JavaScript 链接到客户端?

取决于需要什么。在 99% 的情况下工作的最简单方法是使用 asp:hiddenfield 在客户端和服务器端之间进行通信。对于边缘情况,您希望进入 Exenders 并通过 MS ajax API 在 javascript 中操作 viewstate/controlstate/clientstate。这对于巨大的学习曲线和很多陷阱来说非常痛苦,通常使用隐藏字段并手动调用 __doPostBack 就足够了


我就是这样回答那个要点的。有关 __doPostBack 的更多信息,快速 google 会给你很多结果(对于懒惰的人,这是第一次点击http://aspalliance.com/895

于 2008-12-01T18:58:03.673 回答
1

Do you mean something like this:

in your code behind:

protected string GetPostBack()
{
    return ClientScript.GetPostBackEventReference(this, null);
}

and in your aspx:

<a href="javascript:<%=GetPostBack() %>">Click here to postback</a>
于 2008-09-19T08:12:20.017 回答
0

我认为他在这里问的是如何连接 javascript 函数以与 ASP.NET 回发功能协同工作。

ie 如何使用我自己的 JavaScript 触发控件的事件?

ASP.NET 类库包含一个ClientScript类 - 在System.Web.UI.Page类中找到 - 它使您能够以编程方式将 JavaScript 添加到您的 ASP.NET 页面。

这包含一个调用的方法GetPostBackEventReference,该方法将生成__doPostBackASP.NET 用来触发连接到 Web 控件的事件的脚本。

希望这是有道理的

于 2008-09-19T06:48:18.983 回答