【问题标题】:ASP.NET C# - Removing a column from a datalistASP.NET C# - 从数据列表中删除列
【发布时间】:2009-11-02 19:07:45
【问题描述】:

我在用户控件中有一个数据列表,该数据列表被加载到用户可以根据某些复选框自定义报告的页面中。

但是,其中一个复选框是“隐藏工作日志”,它应该从结果集中隐藏工作日志列,因为它可能很长并且会干扰报告。

如果我这样做:

datatable1.Columns.Remove("WorkLog");

代码抛出异常是因为:

<asp:Label ID="WorkLog" runat="server" Text='<%# Bind("WorkLog") %>'></asp:Label></td>

不存在。

我对用户控件的处理都错了吗?这个用户控件应该总是能够显示工作日志,所以我认为将它绑定在那里并不坏,但同时我希望能够在用户想要的情况下隐藏它。

【问题讨论】:

    标签: c# asp.net user-controls datalist


    【解决方案1】:

    尝试从 DataList 中删除标签控件,而不是从数据源(即 DataTable)中删除列

    DataList1.Controls.Remove(DataList1.FindControl("WorkLog"));
    

    如果数据源的列数多于您在页面上显示的列数,您应该不会收到错误消息,但是,正如您所发现的,如果您尝试显示的列数数据源中不存在。

    【讨论】:

    • 是的.. 但是为什么在不需要的时候发送数据.. 除非你想使用 AJAX 或其他东西:)
    • 如何在数据列表中执行此操作?
    【解决方案2】:

    检查某些条件后将其绑定到代码后面。喜欢

    if (visible) {
        //bind
    }
    

    同时删除控制

      visible = false;
    

    您可能需要将可见更改为会话 var :)

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2017-09-03
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      相关资源
      最近更新 更多