C# 如何在asp.net列表视图中具有可选列?
我想要一个列表视图,用户可以选择列。我尝试过这段代码,但当数据表中并没有sDate列时,就会抛出一个错误C# 如何在asp.net列表视图中具有可选列?,c#,asp.net,listview,C#,Asp.net,Listview,我想要一个列表视图,用户可以选择列。我尝试过这段代码,但当数据表中并没有sDate列时,就会抛出一个错误 <asp:ListView runat="server" ID="lvDetects"> <LayoutTemplate> <ul class="list zebra"> <li> <span class="DetectsListssDate centerCo
<asp:ListView runat="server" ID="lvDetects">
<LayoutTemplate>
<ul class="list zebra">
<li>
<span class="DetectsListssDate centerContents">date</span>
</li>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<%# (Eval("sDate")!=null)?"view something":"nothing" %>
</li>
</ItemTemplate>
</asp:ListView>
-
日期
只返回用户从数据库中选择的列并全部显示,还是返回所有列然后过滤所需的列,这是一个好主意?您应该在代码隐藏中尝试
protected void lvDetects_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
string yourDate = rowView["sDate"].ToString(); // you can check your sDate is null or not
}
}
我想你只需要在显示前格式化日期
<ItemTemplate>
<asp:Label ID="gvLlblOptionMaintenanceDate" runat="server" Text='<%#string.Format("{0:MM-dd-yyyy hh:mm tt}", Eval("MntTimeStamp")) %>'></asp:Label>
</ItemTemplate>
@sanjay.arora29这不是问题所在。我不想在没有列的情况下有一个标签,如何格式化一个不存在的列?所以你的意思是我必须动态创建列,并让项目模板为空?