我试图在ASP.NET 3.5中执行以下操作.基本上,我将LINQDataSource绑定到DataList.有一个名为"Deleted"的属性,如果是,我想显示不同的标记.以下代码抛出错误:
<asp:DataList runat="server">
<ItemTemplate>
<% If CBool(Eval("Deleted")) Then%>
...
<% Else%>
...
<% End If%>
</ItemTemplate>
</asp:DataList>
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果没有,有哪些替代方案?
Ben*_*old 11
我可能建议保持代码前端精简并通过函数结果写出所需的文本:
<asp:DataList runat="server">
<ItemTemplate>
<%# GetText(Container.DataItem) %>
</ItemTemplate>
</asp:DataList>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
protected static string GetText(object dataItem)
{
if (Convert.ToBoolean(DataBinder.Eval(dataItem, "Deleted"))
return "Deleted";
return "Not Deleted";
}
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
作为解决方法的一个选择是使用面板.
<asp:DataList runat="server">
<ItemTemplate>
<asp:Panel Visible="<%# Eval("Deleted") %>">
...(deleted content here)...
</asp:Panel>
<asp:Panel Visible="<%# Not Eval("Deleted") %>">
...(other content here)...
</asp:Panel>
</ItemTemplate>
</asp:DataList>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14811 次 |
最近记录: |