当前位置: 代码迷 >> ASP.NET >> asp.net后台获取js的返回值,该如何解决
  详细解决方案

asp.net后台获取js的返回值,该如何解决

热度:2431   发布时间:2013-02-25 00:00:00.0
asp.net后台获取js的返回值
实例
C# code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server">    <title>无标题页</title>    <script type="text/javascript">    function winid()    {    document.getElementById("hf").value="5";    alert( document.getElementById("hf").value);    }    </script></head><body>    <form id="form1" runat="server">    <div>        </div>        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />        <asp:HiddenField ID="hf" runat="server" />    </form></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {    }    protected void Button1_Click(object sender, EventArgs e)    {        Literal l = new Literal();        l.Text = "<script>winid()</script>";        this.Page.Controls.Add(l);        string ss= hf.Value.ToString();//这个value值怎么总是空    }}


------解决方案--------------------------------------------------------
后台还能用JS的返回值?今天又学了一点。
------解决方案--------------------------------------------------------
"<script>window.winid()</script>";
<%=str%>

------解决方案--------------------------------------------------------
建立你查看一下运行页面的源代码,看看你在后天添加的Literal控件是添加到何处,然后再看看。
------解决方案--------------------------------------------------------
你的literal是添加到html页面的末尾,你执行第一次点击按钮时,你的<script>wind();<script>还没有执行,也就是还未给hf赋值,那当然是空的了。

但是当你再一次(第二次、第三次....)点击按钮时,就有值了的 value=5

那是因为你第一次已经将<script>wind();<script>加载进去了的,只要页面一刷新就会执行赋值和弹出alert()窗体的操作。
------解决方案--------------------------------------------------------
楼主不要执迷不悟了,在一个生命周期内是不可能做的到返回客户端并且同时获取的。
------解决方案--------------------------------------------------------
上个帖子的分毫不吝啬地分给了自己的马甲,这是一种什么精神。
------解决方案--------------------------------------------------------
.............................
------解决方案--------------------------------------------------------
ajax
给你一个链接
http://a4810917.blog.163.com/blog/static/447120732007111210101466/
------解决方案--------------------------------------------------------
C# code
Page.RegisterStartupScript("", "<script>winid();<"+"/script>");
------解决方案--------------------------------------------------------
厄?lz用literal类了?
我感觉写的没错呀也?怎么会空值哩?单步吧...
------解决方案--------------------------------------------------------
protected void Button1_Click(object sender, EventArgs e)
{
Literal l = new Literal();
l.Text = "<script>winid()</script>";
this.Page.Controls.Add(l);
string ss= hf.Value.ToString();//这个value值怎么总是空
}

你是想後臺 調用 前臺 腳本 吧。 這樣調用貌似錯的哦。
  相关解决方案