1

変数とラベルにある Java スクリプトの戻り値にアクセスしたいのですが、それを .cs ファイルで使用したいのですが、どうすればよいですか? 変数にjavascriptの出力とasp.netのラベルコントロールをフェッチしました...両方の方法で値を取得しますが、データbsaeに保存するために.csファイルが必要です。助けてください。 。 ありがとう

<script language=Javascript>
    function setup_ip(json) {
        var htmlx = " Your IP Address: <b>" + json.IP;
        htmlx += "</b> | Country: " + json.countryName;
        if (json.cityName != "Unknown" || json.regionName != "Unknown") {
            htmlx += " | City: " + json.cityName + " / " + json.regionName;
            var s = " | City: " + json.cityName + " / " + json.regionName;
        } else {
            htmlx += " | Your Time: " + json.localTimeZone;
        }

        $("#myipx").html(htmlx);
     //   $('#<%= lbl1.ClientID %>').text(htmlx);
        $('#<%= lbl1.ClientID %>').text(s);

       // var txtCountry = document.getElementById('<%=lbl1.ClientID %>');        

    }

    $(document).ready(function() {


        EasyjQuery_Get_IP("setup_ip", "full");

    });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div class="inner">
<p class="welcome-message">
<a href="http://www.easyjquery.com/detect-get-clients-ip-address-country-using-javascript-php/"id="topid" title="Javascript, PHP jQuery API Detect Clients IP Address and Country - Geo Location"   >
<asp:Label ID="myipx" runat="server"  ClientIDMode="Static"></a></asp:Label>Detecting Clients IP Address - Country - City</span>
<br />
<asp:Label ID="lbl1" runat="server"  ClientIDMode="Static"></asp:Label>
                </p>
                 <asp:TextBox ID="txtCountry" runat="server"></asp:TextBox>


            <!-- END #footer-texture -->
            </div>

    </div>
    </form>
</body>
4

5 に答える 5

2

この値を使用するには、次のオプションがあります。

1.)labelはサーバー側のコントロールであるため、.csファイルのラベルテキスト値に簡単にアクセスできます。ここでのjavascript変数の主な問題は、この値をasp:hiddenフィールドに割り当てて、次のような.csファイルでもアクセスできるようにすることです。

<script language=Javascript>
function setup_ip(json) {

$("#hdn").val('your javascript variable');
}
</script>
 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Release">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpnlHidden" runat="server">
    <ContentTemplate>
        <input runat="server" type="hidden" id="hdn" value="0" />
    </ContentTemplate>
</asp:UpdatePanel>

csファイル:

  string str = hdn.value//Where ever you want to store value

2.)ここでpagemethodを使用して、両方の値をパラメーターとして.csファイルに渡すことができる別のオプション。

javascript:

  PageMethods.getValue(parameter1,parameter2, OnSucceeded, OnFailed);
function OnSucceededID(result, methodName)
{
   //get result back if you want after successfully execution of pagemethod on server side  
}

 function OnFailedID(error, methodName) {
        if (error !== null) {
           alert(error.get_message());
        }
    }

CSファイル:

   [WebMethod(enableSession: true)]
    public static returntype getValue(parameter type parameter1,parameter type parameter2)
    {
        do what you want to do with these values.

    }

お役に立てば幸いです。

于 2012-06-18T05:37:33.090 に答える
2

これはjavascriptとaspxのページです

<script language="Javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>


<script language="Javascript" type="text/javascript" src="http://api.easyjquery.com/easyjquery.js"></script>

<script language=Javascript>
    function setup_ip(json) {
        var htmlx = " Your IP Address: <b>" + json.IP;
        htmlx += "</b> | Country: " + json.countryName;
        var s = " | City: " + json.cityName + " / " + json.regionName;


      $("#hdn").val(s);


        if (json.cityName != "Unknown" || json.regionName != "Unknown") {
            htmlx += " | City: " + json.cityName + " / " + json.regionName;

           s = " | City: " + json.cityName + " / " + json.regionName;
        } else {
            htmlx += " | Your Time: " + json.localTimeZone;
        }




    }

    $(document).ready(function() {


        EasyjQuery_Get_IP("setup_ip", "full");

    });



function testValue() {
    $('#hdn').val();
}
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Release">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpnlHidden" runat="server">
    <ContentTemplate>
        <input runat="server" type="hidden" id="hdn" value="0" />
    </ContentTemplate>
</asp:UpdatePanel>
    <div class="inner">
<p class="welcome-message">
<a ><href="http://www.easyjquery.com/detect-get-clients-ip-address-country-using-javascript-php/"id="topid" title="Javascript, PHP jQuery API Detect Clients IP Address and Country - Geo Location"   ></a>

                <asp:TextBox ID="loc" runat="server"></asp:TextBox>

                </p>

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="setup_ip(json);" onclick="Button1_Click" />

            </div>

    </div>
    </form>
</body>
</html>

これは.csコードです

protected void Page_Load(object sender, EventArgs e)
    {


        loc.Text = hdn.Value;
    }


  protected void Button1_Click(object sender, EventArgs e) 
{ 
string str = hdn.Value; 
}
于 2012-06-18T06:59:36.937 に答える
2

クライアント側の情報 (JavaScript の結果/変数) をサーバーに送信するには、その情報をサーバーに送信する必要があります。:-) さまざまな方法でそれを行うことができます。データベースを更新するのに最適な 2 つは次のとおりです。

  • Ajax - ページを更新せずにクライアントからサーバーにデータを送信する手段
  • フォーム送信 - 標準フォーム送信
于 2012-06-18T05:34:20.003 に答える
2

サーバー側の非表示フィールドを作成し、JavaScript 値を配置します。サーバー側の非表示フィールドから値を読み取ります。

HTML

<input type="hidden" id="myhidden" runat="server">

JavaScriptでアクセス

 document.getElementById("myhidden").value="jsvalue";

コード ビハインドでのアクセス

myhidden.Value

また

ajax を使用してサーバーにデータを送信できます。

于 2012-06-18T05:35:21.500 に答える
0

ajax リクエストを使用して、サーバーにデータを投稿できます。すでに jquery を使用しているため、これはかなり簡単です。API ref http://api.jquery.com/jQuery.ajax/を参照してください。

$.ajax({
    type: "POST",
    url: "Page.aspx/method_name",
    data: { name: "some data", id: "some more data" }
}).done(function( msg ) {
    alert( "Data Saved: " + msg );
});

この例では、Page.aspx のコード ビハインドに、文字列名と文字列 ID の 2 つのパラメーターを受け取る method_name という名前のメソッドがあります。そのメソッドは、[WebMethod]属性で装飾されます。次に、そのメソッドで好きなようにこれらを使用できます。

于 2012-06-18T05:53:26.013 に答える