Все, в общем случае. Если мы хотим вывести переменную на странице, которая определена в файле класса кода на странице. Мы могли бы установить переменную с видимостью public
или protect
. и на первой странице мы можем использовать его, как показано ниже. <%=VariableName%>
.Почему нельзя использовать <%=...%> в ListView
Но я не знаю, почему он не может использовать его в ListView. Пожалуйста, помогите просмотреть мой код.
В первой странице
<div id="divIssuedListContainer" class="myIssuedList">
<asp:ListView id="listShower" runat="server">
<LayoutTemplate>
<div id="divIssuedListHeadTitle">
<div id="divIssuedListTitleIco">
<img alt="" src="ico/IssuedCap.png" />
</div>
<div id="divIssuedListTitleName">
<span>ISSUED</span><span>TRADE NAMES</span><span>/LICENSES</span>
</div>
<div id="divIssuedListItemNumber">
<span>
<%=iListNumber%></span>
</div>
</div>
<div style="clear:both"></div>
<div id="divIssuedListBody">
<ul>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</ul>
</div>
</LayoutTemplate>
<ItemTemplate>
<li>
<table>
<tr>
<td>
<img alt="" src="" />
</td>
<td>
<div>
<span>
<%# Eval("altID") %>
-
<%# Eval("englishTradeName") %></span></div>
<div>
<span>Expired Date:<%# Eval("expDate") %></span>
</div>
</td>
</tr>
</table>
</li>
</ItemTemplate>
</asp:ListView>
В отделенного кода страницы
public partial class _Default : System.Web.UI.Page
{
protected int iListNumber = 0;
protected void Page_Load(object sender, EventArgs e)
{
List<SimpleCapModel> DataSourceList = TestDataHelper.GetMyIssuedList();
listShower.DataSource = DataSourceList;
iListNumber = DataSourceList.Count();
listShower.DataBind();
}
}
Я получил страницу ошибки сказал:
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
Source Error:
Line 19: listShower.DataSource = DataSourceList;
Line 20: iListNumber = DataSourceList.Count();
Line 21: listShower.DataBind();//this line cause error.
Line 22: }
Line 23: }
И если я используйте выражение <%#iListNumber%>
. Ошибка исчезла, но я получил пустое значение вместо номера списка. пожалуйста, просмотрите приведенный ниже результат html:
<div id="divIssuedListItemNumber">
<span> </span>
</div>
Я не знал, пропустил ли я что-нибудь? Если бы я сделал. Пожалуйста, помогите мне сообщить об этом.
+1 очень полезно сообщение. Но '<% # iListNumber.ToString()%>' не работает. –
* не работает * как? Все еще давая вам исключение? Не дать вам то значение, которое вы хотите? –
Извините, без каких-либо исключений, не показывать номер списка. Благодарю. –