2009-09-08 54 views
36

這工作:如何在服務器控件屬性中使用ASP.NET <%=標籤?

<span value="<%= this.Text %>" /> 

這不起作用:

<asp:Label Text="<%= this.Text %>" runat="server" /> 

這是爲什麼?

如何使第二種情況正常工作,即將標籤的文本設置爲「文本」變量的值?

+0

的[爲什麼會<%= %>表達式作爲屬性值的服務器控件導致可能重複的編譯錯誤? ](http://stackoverflow.com/questions/370201/why-will-expressions-as-property-values-on-a-server-controls-lead-to-a-co) – zzzzBov 2013-06-24 18:33:09

回答

5

不知道如何將這些標記爲這樣的,但是這是一個有點重複的。 See this thread

我不認爲將代碼嵌入到您的標記中會使您的標記更清晰或更優雅。

+2

最新評論:我會想將按鈕的文本設置爲一個簡單的變量或函數,在標記中比在後面的代碼中更有意義。特別是如果你有很多按鈕設置爲text =「literal」,但是有一兩個按鈕需要一些代碼,很煩人的是大多數按鈕被設置在標記中,但例外情況出現在代碼後面。現在我不僅需要查看兩個地方纔能看到文本值,但我必須搜索以找到代碼後面的位置。我當然不會在標記中放入十頁代碼,但是一個簡單的「text = <%= foo.bar%>」似乎非常有用。無論如何。 – Jay 2016-06-22 18:53:03

+1

在現實世界中,經常讓某些東西起作用的東西會讓東西變得更清晰或更優雅 – 2017-03-02 07:06:26

7

<asp:Label>在運行時編譯並轉換爲html標記。您可以設置文本與代碼隱藏或像這樣:

<asp:Label id="Text1" runat="server" /> 
<% Text1.Text = this.Text;%> 

UPD:好像我變不工作,這是更好的:

protected void Page_Load(object sender,EventArgs e) 
{ 
    Text1.Text = this.Text; 
} 
6

您將需要設置服務器控件的值在代碼

首先,分配一個ID的標籤控制,因此您可以訪問控制

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

然後,在你的Page_Load功能,設置您的標籤「文本」字段

protected void Page_Load(object sender, EventArgs e) 
{ 
    myLabel.Text = 'Whatever you want the label to display'; 
} 

,此功能將在隱藏文件中的代碼,或者,如果你沒有使用模型背後的代碼的價值,裏面你需要的aspx頁面

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     myLabel.Text = 'Whatever you want the label to display'; 
    } 
</script> 

祝你好運。

44

使用Data binding expressions

<asp:Label ID="Label1" runat="server" Text="<%# DateTime.Now %>" ></asp:Label> 

後面的代碼,

protected void Page_Load(object sender, EventArgs e){ 
    DataBind(); 
} 
7

在我的代碼我使用這樣的事情很容易,但在數據綁定控件一樣ListView項模板

<asp:HyperLink ID="EditAction" class="actionLinks" Visible='<%#Eval("IsTrue").ToString() != "True"%>' runat="server" NavigateUrl='<%# Eval("ContentId","/articles/edit.aspx?articleid={0}")%>' /> 

但是,當我嘗試使用<%#..%>數據綁定控件外部使用,它根本不起作用。

您可以輕鬆地

<a href="<%=myHref%>">My href</a> 

做但對於服務器控件,內外數據綁定控件。我們需要調用DataBind()在頁面加載事件明確

<asp:Hyperlink ID="aa" NavigateUrl='<%#myHref%>' > 
12

你可以做到這一點

<asp:Label ID="Label1" runat="server" ><%= variable%></asp:Label> 
+1

這應該是被接受的答案,不需要數據綁定。 – JohnOpincar 2017-08-24 19:21:56

相關問題