日期:2014-05-17  浏览次数:20498 次

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值怎么总是空
}

你是想後臺 調用 前臺 腳本 吧。 這樣調用貌似錯的哦。