Dam*_*iro 5 c# methods repeater code-behind
我的页面上有一个转发器:
<asp:Repeater id="attachmentsRepeater" runat="server">
<HeaderTemplate>
<%
if (attachmentsRepeater.Items.Count > 0) {
if (attachmentsRepeater.Items.Count == 1) {
Response.Write("<h3>Attachment</h3>");
Response.Write("<p>");
} else {
Response.Write("<h3>Attachments</h3>");
Response.Write("<ul>");
}
}
%>
</HeaderTemplate>
<ItemTemplate>
<%# OutputAttachment(Container)%>
</ItemTemplate>
<FooterTemplate>
<%
if (attachmentsRepeater.Items.Count > 0) {
if (attachmentsRepeater.Items.Count == 1) {
Response.Write("</p>");
} else {
Response.Write("</ul>");
}
}
%>
</FooterTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
原始的ItemTemplate代码如下所示:
<ItemTemplate>
<%
if (attachmentsRepeater.Items.Count > 0) {
if (attachmentsRepeater.Items.Count > 1) {
Response.Write("<li>");
}
%>
<a href="<%# DataBinder.Eval(Container.DataItem, "location") %>">
<%# DataBinder.Eval(Container.DataItem, "name") %>
</a>
<%
if (attachmentsRepeater.Items.Count > 1) {
Response.Write("<li>");
}
}
%>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中,我想访问Repeater中的Items数量(第4行):
public string OutputAttachment(RepeaterItem Container) {
string returnValue = "";
Repeater ContainerParent = (Repeater)Container.Parent;
if (attachmentsRepeater.Items.Count > 0) {
if (attachmentsRepeater.Items.Count > 1) {
returnValue += "<li>";
}
returnValue += "<a href=\"" + DataBinder.Eval(Container.DataItem, "location");
if (DataBinder.Eval(Container.DataItem, "location").ToString().EndsWith("/")) {
returnValue += DataBinder.Eval(Container.DataItem, "name");
}
returnValue += ">" + DataBinder.Eval(Container.DataItem, "name") + "</a>";
if (attachmentsRepeater.Items.Count > 1) {
returnValue += "</li>";
}
}
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
输出的代码是
<h3>Attachment</h3>
<p> </p>
Run Code Online (Sandbox Code Playgroud)
从这个输出我知道Item.Count == 1因为有输出,所以H3是单数并且有一个P标记.如果Item.Count> 1,则H3将是复数并且将存在UL标签.
这个代码隐藏方法是在数据绑定之前运行的吗?有没有解决方法呢?谢谢你的帮助.
这之前对我有用,但我不得不改变它以满足新的要求,即它停止工作的时候.
进行数据绑定的最佳位置是 page_load 事件或首次创建页面时触发的其他事件的代码中。
这样您就可以控制何时绑定数据 - 并且您可以在绑定数据后调用 OuputAttachment 方法 - 并且您可以确保数据确实存在。
| 归档时间: |
|
| 查看次数: |
10921 次 |
| 最近记录: |