从Javascript访问ASP.NET Literal值

时间:2014-09-18 12:23:40

标签: javascript asp.net

如何从JS访问ASP.NET Literal控件的值。我有以下但它不起作用:

var companyname = document.getElementById('litCompanyName').text;
var companynumber = document.getElementById('litCompanyNumber').text;

由于

4 个答案:

答案 0 :(得分:1)

你必须在webform / view中公开你的文字,因为你不能在.js文件中公开asp.net代码,你可以这样做:

<script>
var litCompanyName = <%= [YOUR LITERAL]; %>
</script>

然后使用它

答案 1 :(得分:0)

简短的回答是你无法做到。文字控制就是这样。 Text属性中的值是&#39;字面上&#39;输出到响应流。

您可以设置隐藏字段或使用标签。请记住,从Javascript引用ASP.NET控件,它更容易使用ClientIDMode =&#34; Static&#34;或者在带有ID的范围中包装您的文字。

例如:

litCompanyName.Text = "<span id=\"company-name\"> + Company.Name + </span>";

然后在你的JS中

var companyname = document.getElementById('company-name').text;

答案 2 :(得分:0)

在Asp.net中,当页面即将进行渲染时,它将在Html中更改其ID。 在Mozilla Firefox中使用FireBug检查页面的Html。

标签示例

<asp:Label ID="SaveTime" runat="server"></asp:Label>

  var companynumber=  document.getElementById('<%=SaveTime.ClientID%>').Text

和文字你需要用div或span包裹

<span id="yourId"><asp:Literal  ID="SaveTime" runat="server"></asp:Literal></span>

JS:

var value= document.getElementById('yourId').innerText;

答案 3 :(得分:0)

文字控件仅存在于服务器端,当呈现页面时,它只是最终在页面中的控件文本。所以如果你有:

The company name is <asp:Literal ID="litCompanyName" runat="server" Text="Google" />

HTML代码中的所有内容都是:

The company name is Google

要从Javascript访问文本,您需要文本周围的元素,例如:

<span id="CompanyName"><asp:Literal ID="litCompanyName" runat="server" /></span>

现在,您可以使用document.getElementById('CompanyName').innerHTML从文字中获取文字。