我有一个问题(我正在学习 VB)在 vb.net 中是否有一种方法可以在客户端之后加载 Me.LoadComplete,我开发了这个简单的代码以便于理解我的问题
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.LoadComplete
MsgBox(myhiddenField.Value)
End Sub
客户端
</script>
<title></title>
<script type="text/javascript">
$(document).ready(function() {
$("#<%=myhiddenField.ClientID%>").val('this is the value ') ;
});
</script>
<form id="form1" runat="server">
<div>
<asp:LinkButton ID="myLink" runat="server"
PostBackUrl="~/Default.aspx?value=1" >
MyLink </asp:LinkButton>
<asp:HiddenField ID="myhiddenField" runat="server"/>
</div>
</form>
当页面加载时,MsgBox 将为空,但是当您单击链接按钮时,MsgBox 具有您在 javascript 中设置的值,因此我假设 page_load 函数首先被执行 问题是如何在 page_load 之前加载客户端内容?
最佳答案
The ASP.NET Lifecycle说不,因为内容在 Page_Render 之前不会被推送到浏览器,这发生在 Page_Load 之后。
您可以尝试在 Page_Init 中做大量工作,然后使用 Response.Flush()强制服务器向浏览器发送内容,但是
- 您只会推送已经创建的内容,因此不允许您在 Page_Load 之前将整个页面推送到浏览器
- 我不确定它是否有效
- 即使这样做,也会有副作用。例如,您可能需要管理控件创建、Viewstate 值应用等。
即使以任何方式、形状或形式(我对此表示怀疑)都是可能的 - 这将是一个有趣的实验,但我不建议设计一个围绕这个想法的实时应用程序。 Page Lifecycle 是每个 ASP.NET 开发人员都(或应该)熟悉的东西,做这样愚蠢的事情只会让维护程序员更难。
关于c# - 如何在 page_load VB.net 之前加载客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11034210/