2016-05-06 4 views
1

Ich möchte eine Zeichenfolge von C# zu JavaScript in ASP-Webformularen übertragen. Mein Ansatz besteht darin, die Daten als Text für ein ASP-Etikett in C# festzulegen und dann den Text des Etiketts per ID in JS abzurufen.Erhalten Sie den Text oder den Wert des ASP.NET-Labels in JavaScript

C# -Code (ascx.cs-Datei):

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-Schnipsel zeigt das Label (ascx-Datei):

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

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

Ich bin Empfangen der Daten als Null in der Variablen 'a'. Ich habe versucht,

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

aber es ist auch null

+0

ist Ihr Skript in Ihrer ascx Datei oder extern? –

+0

es ist in der Ascx-Datei –

+0

Das klingt wie ein seltsames Verhalten. Welcher Browser wird benutzt? Browser ohne HTML5-Unterstützung unterstützen keine Script-Tags ohne type = "javascript". Eine weitere Idee ist, verwenden Sie mehrere dieser Benutzersteuerelemente? Haben Sie nach der usercontrol-Implementierung versucht, den Skriptteil zu setzen? – Franki1986

Antwort

0

Klingt wie Javascript ausgeführt wird, bevor das Label

  1. Legen Sie die js nach dem <asp:Label> auf der Seite geladen wird. Vorzugsweise vor </body>:

    <script> 
         var a = document.getElementById('<%= Label1.ClientID %>'); 
         console.log(a); 
        </script> 
    </body> 
    
  2. Alternativ können Sie den Codeblock mit jQuery umgeben $(document).ready():

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