我想要一个包含用户可选列的列表视图。我已经尝试过这段代码但是当数据表中没有sDate列时,会抛出错误。
<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>
最好只返回用户从数据库中选择的列并显示所有列,还是返回所有列,然后过滤所需的列?
答案 0 :(得分:0)
你应该在后面的代码中尝试这个!
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
}
}
答案 1 :(得分:0)
我认为您需要在显示之前格式化日期。
<ItemTemplate>
<asp:Label ID="gvLlblOptionMaintenanceDate" runat="server" Text='<%#string.Format("{0:MM-dd-yyyy hh:mm tt}", Eval("MntTimeStamp")) %>'></asp:Label>
</ItemTemplate>