2016-05-06 28 views
1

我想从ASP Web窗体中将C#数据字符串传输到JavaScript。我的方法是将数据设置为C#中ASP标签的文本,然后通过JS中的ID获取标签的文本。在ASP.NET中获取ASP.NET标签的文本或值

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; 

但它也是空

+0

是你的脚本在你的ASCX文件或外部? –

+0

它在ascx文件中 –

+0

这听起来像一个奇怪的行为。使用什么浏览器?没有HTML5支持的浏览器不支持没有type =“javascript”的脚本标记。另一个想法是,你使用多个这种用户控件?您是否尝试将脚本部分放在usercontrol实现之后? – Franki1986

回答

0

听起来像Java脚本标签是<asp:Label>在网页加载后

  1. 放置JS之前运行。最好在</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> 
    
相关问题