我想将一串数据从 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 在标签加载之前运行
将js放在
<asp:Label>
后面在页面上。最好在</body>
之前:<script> var a = document.getElementById('<%= Label1.ClientID %>'); console.log(a); </script> </body>
或者,您可以使用 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/