如何在asp.net列表视图中有可选列?

时间:2014-01-13 11:18:03

标签: c# asp.net listview

我想要一个包含用户可选列的列表视图。我已经尝试过这段代码但是当数据表中没有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>

最好只返回用户从数据库中选择的列并显示所有列,还是返回所有列,然后过滤所需的列?

2 个答案:

答案 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>