這是ASP.NET 4.0中的錯誤,還是我錯過了明顯的東西......?ASP.NET標籤刪除空間
我與<ItemTemplate>
內大致如下的<asp:Repeater>
...
<td><asp:Checkbox runat="server" ID="chkInclude" Checked="true" /></td>
<td>
<asp:Label runat="server" AssociatedControlID="chkInclude">
<%#Container.DataItem.FirstName%> <%#Container.DataItem.Surname%></asp:Label>
</td>
這導致了名字和姓氏被渲染沒有之間的空間......
<td>JoeBlogs</td>
有一個簡單的解決方案,即串接字符串...
<asp:Label runat="server" AssociatedControlID="chkInclude">
<%#Container.DataItem.FirstName & " " & Container.DataItem.Surname%></asp:Label>
...但我想知道爲什麼當使用單獨的<%#Container%>
元素時,空間被剝離出<asp:Label>
。我無法在控件上看到一個明顯的屬性,表明這可以被覆蓋。
作爲一個現在刪除評論指出的那樣,我也可以在元素之間添加
作爲另一個變通...但如果合適,這將阻止它自動換行。
進一步的調查(由@Andrei提示)顯示,...
- 卸下
<asp:Label>
導致正確的輸出 - 更換
<%#%>
塊硬文本導致正確的輸出 - 在
<%#%>
塊之間添加硬文本會產生正確的輸出(儘管我明顯不想要額外的文本) - 更換
<asp:Label>
直<span>
導致正確的輸出
但具有單個空間中的兩個塊,並且它失敗(即之間沒有空間)。
我也嘗試刪除AssociatedControlID
但也失敗了。
如果多個空格用一個空格代替,這將是由於HTML的呈現方式。但刪除單個空間看起來很奇怪。你嘗試過簡化的東西嗎?說,而不是'<%# %>'只是硬編碼的東西,看看會發生什麼?甚至用span替換Label並再次查看會發生什麼? – Andrei
@Andrei - 同意,這很奇怪。刪除''完全沒問題......用硬文本替換'<%#%>'塊就好了......在'<%#%>'塊之間添加文本沒問題。但是有兩個單一空間塊,並且失敗。我也嘗試刪除'AssociatedControlID',但也失敗了。最後,這並不重要,因爲我有一個簡單的解決方法,我只是認爲這是我做錯了,並想檢查 –
freefaller
沒有你做錯了什麼,但這將是有趣的弄清楚。所以我會嘗試的是:1)沒有容器:'喬博客 '; 2)沒有標籤控制'<%#容器%><%#容器%>'。你可以檢查是否有任何保留空間? –
Andrei