javascript - 在 JavaScript 中获取 ASP.NET 标签的文本或值

标签 javascript c# asp.net webforms

我想将一串数据从 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 片段(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;

但它也是 null

最佳答案

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

  1. 将js放在<asp:Label>后面在页面上。最好在</body>之前:

        <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>
    

关于javascript - 在 JavaScript 中获取 ASP.NET 标签的文本或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37068098/

相关文章:

c# - .NET WinForms - 如何监听系统注销、用户锁定、休眠启动和系统恢复的事件?

c# - Web Api 中的 HttpClient 非常慢

c# - 为什么我可以在 web.config 中有多个相同的绑定(bind)重定向?

asp.net - 使用 ASP.NET 的粘性页脚

javascript - 如何在 JavaScript 中替换 ASCII 码 (alt+207)?

javascript - 如何在加载图像之前获取图像的 JavaScript 宽度和高度?

javascript - 不用jquery设置元素属性

c# - 当基类是泛型时在 XAML 中设置依赖属性

javascript - 我如何在 Dreamweaver 中进行代码导航,就像在 Eclipse 中按 ctrl+单击一样?

c# - 如果分配了相同的值,setter 是否应该立即返回?