Javascript ASP.Net get ScriptManager.RegisterClientScriptBlock在UpdatePanel hiddenField上返回
我正在尝试使用ScriptManager.RegisterClientScriptBlock获取调用ont服务器端的Javascript函数的返回 目前,我的javascript函数将值保存在UpdatePanel中包含的HiddenField中。调用该方法时,我运行ScriptManager.RegisterClientScriptBlock,然后获取HiddenField的值,但总是返回上一次调用的值。我在这里展示代码: 我的用户控件ASPX端:Javascript ASP.Net get ScriptManager.RegisterClientScriptBlock在UpdatePanel hiddenField上返回,javascript,asp.net,ajax,updatepanel,registerclientscriptblock,Javascript,Asp.net,Ajax,Updatepanel,Registerclientscriptblock,我正在尝试使用ScriptManager.RegisterClientScriptBlock获取调用ont服务器端的Javascript函数的返回 目前,我的javascript函数将值保存在UpdatePanel中包含的HiddenField中。调用该方法时,我运行ScriptManager.RegisterClientScriptBlock,然后获取HiddenField的值,但总是返回上一次调用的值。我在这里展示代码: 我的用户控件ASPX端: <script> var nu
<script>
var num = 0;
function getReturn() {
num = num + 1;
var hr= document.getElementById('<%= hdf.ClientID %>');
hRetorno.value = num;
}
</script>
...
<asp:UpdatePanel ID="up1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:HiddenField ID="hdf" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="width:720px; height:480px;">
<uc1:MyControl runat="server" id="MyControl1"/>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btn" runat="server" OnClick="btn_Click" />
<asp:TextBox ID="txt" runat="server" ></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
索引页ASPX侧:
<script>
var num = 0;
function getReturn() {
num = num + 1;
var hr= document.getElementById('<%= hdf.ClientID %>');
hRetorno.value = num;
}
</script>
...
<asp:UpdatePanel ID="up1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:HiddenField ID="hdf" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="width:720px; height:480px;">
<uc1:MyControl runat="server" id="MyControl1"/>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btn" runat="server" OnClick="btn_Click" />
<asp:TextBox ID="txt" runat="server" ></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
你不能同时做这些事情
RegisterClientScriptBlock
或RegisterStartupScript
从服务器端代码设置隐藏字段的值当您调用
RegisterClientScriptBlock
或RegisterStartupScript
时,它不会立即调用JS
,而只是在之前或之后追加一个javascript调用
,在调用RegisterClientScriptBlock之后是否有办法回发?还是另一种方法?Thnks@也许我不清楚你在这里的要求,为什么你需要这样的东西,因为它们相互冲突,比如你触发javascript的回发,你在调用RegisterClientScriptBlock
后不会得到那个值,也更新了答案,添加了更多的解释。我正在做一个谷歌地图用户控件。我可以使用服务器端方法(如micontrol.insertMarker())的异步调用放置标记。。。但是我无法从map-like控件中获取信息。getCenter()(始终使用ajax)@Migue,唯一的一件事,我可以告诉你,你需要重新考虑这件事的设计,可能是只使用javascript
处理所有事情,或者可能是服务器端代码。