【问题标题】:Get ASP.NET label's text or value in JavaScript在 JavaScript 中获取 ASP.NET 标签的文本或值
【发布时间】:2016-05-06 08:50:49
【问题描述】:

我想将一串数据从 C# 传输到 ASP Web 表单中的 JavaScript。我的做法是在 C# 中将数据设置为 ASP 标签的文本,然后在 JS 中通过 ID 抓取标签的文本。

C# 代码(ascx.cs 文件):

    List<Event> eventList;

    protected void Page_Load(object sender, EventArgs e)
    {
        string message = string.Empty;
        SPSite franasabank = new SPSite("http://lbshrptweb/sites/fransabank/");
        SPWeb calendar = franasabank.OpenWeb();
        SPList list = calendar.Lists["Fransabank Calendar"];
        eventList = new List<Event>();
        foreach (SPListItem oItem in list.Items)
        {
            // Access each item in the list...  
            DateTime startTime = (DateTime)oItem["Start Time"];
            DateTime endTime = (DateTime)oItem["End Time"];
            string status = (String)oItem["Status"];
            string title = oItem.Title;
            string description = (String)oItem["Description"];
            Event calendar_event = new Event(startTime, endTime, status, title, description);
            eventList.Add(calendar_event);
        }
        foreach (Event item in eventList)
        {
            message += item.Title + " " + item.Description + item.StartDate + "-" + item.EndDate + "-" + item.Status + "\n";
        }

        Label1.Text = message;
    }

HTML sn-p 显示标签(ascx 文件):

<div data-ng-app="Calendar">
   <div data-ng-controller="CalendarController" id="mycontroller">
     <div class="row " data-ng-init="Initialize()">
        <asp:Label ID="Label1" runat="server" Text="Label" ></asp:Label>

JavaScript 代码:

<script>
    var a = document.getElementById('<%= Label1.ClientID %>');
    console.log(a);
</script>

我在变量“a”中接收为空的数据。我试过了

var a = document.getElementById('<%= Label1.ClientID %>').innerHTML;

但它也是空的

【问题讨论】:

  • 你的脚本是在你的 ascx 文件中还是在外部?
  • 在 ascx 文件中
  • 这听起来很奇怪。使用什么浏览器?不支持 HTML5 的浏览器不支持没有 type="javascript" 的脚本标签。另一个想法是,您是否使用了多个此类用户控件?您是否尝试将脚本部分放在用户控件实现之后?

标签: javascript c# asp.net webforms


【解决方案1】:

听起来 Javascript 在标签加载之前运行

  1. 将js放在页面&lt;asp:Label&gt;之后。最好在&lt;/body&gt;之前:

        <script>
            var a = document.getElementById('<%= Label1.ClientID %>');
            console.log(a);
        </script>
    </body>
    
  2. 或者,您可以使用 jQuery $(document).ready() 包围代码块:

    <script>
        $(document).ready(function () {
            var a = document.getElementById('<%= Label1.ClientID %>');
            console.log(a);
        });
    </script>
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2023-03-10
    • 2013-04-28
    • 1970-01-01
    • 2019-12-29
    相关资源
    最近更新 更多