2016-05-06 27 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> 
    
相關問題