cs获取js变量值

在工作过程中,发现js调用c#程序的时候,会出现一些无法获取js变量的情况,由于page_load先于javascript执行,故有可能导致此错误,而将js变量,如"+str+" 中的+str+作为string类型,直接传递给c#后台中

以下为验证过的可行性的cs获取js变量值的方法:

<%@ 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 TestValue()
        {
            var str = "这是测试的输入值";
            UseCallback(str);
        }
        
        function GetValye(value)
        {
            document.getElementById("TextBox1").value = value;
        }
    </script>
</head>
<body onload="TestValue();">
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>
</body>
</html>

后台C#代码:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
    string callback = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        string strRefeence = Page.ClientScript.GetCallbackEventReference(this, "arg", "GetValye", "content");
        string strScript = "function UseCallback(arg, content){" + strRefeence + ";}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallback", strScript, true);
    }

    public void RaiseCallbackEvent(string eventArg)
    {
        if (eventArg.Equals("这是测试的输入值"))
        {
            callback = "传值正确";
        }
        else
        {
            callback = "传值错误";
        }
    }

    public string GetCallbackResult()
    {
        return callback;
    }
}

 

 

 

转载自:http://bbs.bccn.net/thread-311823-1-1.html

posted on 2012-05-02 13:45  lei0515  阅读(381)  评论(0)    收藏  举报

导航