【问题标题】:display results of jquery in a label in asp.net在 asp.net 的标签中显示 jquery 的结果
【发布时间】:2012-06-13 03:44:37
【问题描述】:

我想在我的 asp.net 页面上的标签控件中显示此 javascript 的结果,而不是警报。我该怎么做?

<script type="text/javascript" language="Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <!-- Require EasyJQuery After JQuery --><script type="text/javascript" language="Javascript" src="http://api.easyjquery.com/easyjquery.js"></script> <script type="text/javascript" language="Javascript">
    // 1. Your Data Here
    function my_callback(json) {
        alert("IP :" + json.IP + " COUNTRY: " + json.COUNTRY);
    }

    function my_callback2(json) {

       alert("IP :" + json.IP + " COUNTRY: " + json.COUNTRY + " City: " + json.cityName + " Region Name: " + json.regionName);
    }

    // 2. Setup Callback Function
   // EasyjQuery_Get_IP("my_callback"); // fastest version
    EasyjQuery_Get_IP("my_callback2","full"); // full version
</script> 

【问题讨论】:

  • 你的标签的id是什么。
  • 你想从后面的代码中调用javascript函数

标签: javascript jquery asp.net json


【解决方案1】:

使用动态 ID

asp.net的label控件默认呈现为span,所以你可以通过ID找到这个控件来设置里面的文本,在里面使用text输入如下:

  $('#<%=txtLabel.ClientID%>').text("message");

使用静态 ID

替代方案(版本 4+)您可以在控件上设置 ClientIDMode="Static",这样 id 就不会改变

<asp:Label runat="server" ID="txtName" ClientIDMode="Static">Test</asp:Label>

渲染为&lt;span id="txtName"&gt;Test&lt;/span&gt;并在他里面写成

$('#txtName').text("message");

你的函数将是

function my_callback(json) {
    $('#txtName').text("IP :" + json.IP + " COUNTRY: " + json.COUNTRY);
}

function my_callback2(json) {
   $('#txtName').text("IP :" + json.IP + " COUNTRY: " + json.COUNTRY + " City: " + json.cityName + " Region Name: " + json.regionName);
}

【讨论】:

  • 但是这个问题似乎很混乱,我想他也想从后面的代码中调用他的javascript函数。
  • @freebird 我试着认为...嗯,没看到,只赢了在页面上显示消息。
  • 我想运行 javascript whixh 获取我的 ip 地址 n 位置,希望在标签中显示相同
  • @Zoya 哪部分不起作用,因为我在这里有两种不同的方法(它们起作用是因为我已经测试过它们)
  • 0k,你能把这两种方法分别发给我吗,我用asp.net 4.0
【解决方案2】:

当您使用服务器端控件时,它们的客户端 ID 会发生变化。正如 Aristos 正确指出的那样,如果您使用的是 (v4+),您可以将 ClientIDMode 属性设置为 static,以便其 ID 保持不变。 如果您的标签 ID 是 myLabel 并且您设置了 ClientIDMode=static ,那么标签的 ID 将是 myLabel 本身。 否则,ID 会呈现为类似 #ctl00_ContentPlaceHolder1_myLabel 的内容。 这应该为您解决问题。

$('#<%= myLabel.ClientID %>').text("set whatever you need");

希望对你有所帮助。

【讨论】:

  • @Aristos 可能是,但我现在知道这个问题了,我们试图建议他的是正确的。他只是想使用 jquery 设置他的 Label 控件的值。
  • @Aristos 知道了,以后会处理的。
  • @Aristos 我到底应该重新格式化什么,你能指点我吗。
  • @Aristos 这样更有说服力吗。
  • 请参阅我希望页面上的标签具有 javascript 函数中警报返回的值,基本上我希望我的网站用户在 google 等页面上获取他们的城市、国家/地区名称。
【解决方案3】:
head runat="server">
    <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;
        if (json.cityName != "Unknown" || json.regionName != "Unknown") {
            htmlx += " | City: " + json.cityName + " / " + json.regionName;
        } else {
            htmlx += " | Your Time: " + json.localTimeZone;
        }

        $("#myipx").html(htmlx);
    }

    $(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"></asp:Label>Detecting Clients IP Address - Country - City</span></a>
<br />
<asp:Label ID="lbl1" runat="server"  ClientIDMode="Static"></asp:Label>
                </p>



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

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

【讨论】:

  • m 中途,现在我可以在.cs文件中获取标签的值
  • 你有购买这个功能吗? EasyjQuery_Get_IP
  • 不,我不想买,我现在已经在标签中获取了它,但是正如你所说,它呈现为跨度......我在 .cs 文件中得到了它的空值......而且很多为了您的支持……今年五月去过雅典,很漂亮!
  • 我认为您也可以免费找到它 - 但是 - 要使其工作,您需要首先在设置一些 cookie 的代码上运行一个函数,然后此函数才能工作。
  • 我终于找到了钥匙......它工作正常检查stackoverflow.com/a/11078196/1445836也非常感谢你,投票给我的答案!
【解决方案4】:

找到您的标签的 ID 或名称并将其文本设置如下:

$('label#myLabel').text('foo');

【讨论】:

  • 尽管它的编写方式是正确的,但它是一个一般性的答案,第一个问题是,如何在 html 上找到从 asp.net 写入 id 的方式 - 如果这是可能的,因为有些控件没有包含在任何标签中。
猜你喜欢
  • 2012-02-07
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
相关资源
最近更新 更多