我想访问java脚本的返回值,它在变量和标签中,我想在.cs文件中使用它,我该怎么做?我已经在一个变量和一个asp.net的标签控件中获取了javascript的输出...我得到了两种方式的值,但需要它.cs文件将它保存在我的数据bsae中,请帮助我。谢谢你
<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>
答案 0 :(得分:2)
要将客户端信息(JavaScript结果/变量)发送到服务器,您必须...将信息发送到服务器。 :-)你可以通过各种方式做到这一点,最好的两个更新数据库将是:
答案 1 :(得分:2)
创建服务器端隐藏字段,在其中放置javascript值。并在服务器端读取隐藏字段的值。
HTML
<input type="hidden" id="myhidden" runat="server">
使用javascript访问
document.getElementById("myhidden").value="jsvalue";
访问代码
myhidden.Value
OR
您可以使用ajax将数据发送到服务器。
答案 2 :(得分:2)
要使用此值,您有以下选项:
1.)由于标签是您的服务器端控件,您可以轻松访问.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.
}
希望它对你有所帮助。
答案 3 :(得分: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;
}
答案 4 :(得分: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的代码隐藏中,您将拥有一个名为method_name的方法,该方法接受两个参数:string name,string id。该方法将使用[WebMethod]
属性进行修饰。然后你可以在那种方法中使用这些。