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

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

我想要一个列表视图,用户可以选择列。我尝试过这段代码,但当数据表中并没有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>

  • 日期

  • 只返回用户从数据库中选择的列并全部显示,还是返回所有列然后过滤所需的列,这是一个好主意?

    您应该在代码隐藏中尝试

     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这不是问题所在。我不想在没有列的情况下有一个标签,如何格式化一个不存在的列?所以你的意思是我必须动态创建列,并让项目模板为空?