开发者

ASP.NET C# - Removing a column from a datalist

开发者 https://www.devze.com 2022-12-09 21:30 出处:网络
I have a datalist inside a usercontrol that gets loaded into a page where users can customize a report based on some checkboxes.

I have a datalist inside a usercontrol that gets loaded into a page where users can customize a report based on some checkboxes.

One of the checkboxes, however, is "Hide Worklog" which should hide the worklog column from the result set because it can be quite long and interfere with the report.

If I do:

datatable1.Columns.Remove("WorkLog");

the code throws an开发者_如何学Go exception because:

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

doesn't exist.

Am I going about the usercontrol all wrong? This usercontrol should always be able to show the worklog, so I don't think it's bad to bind it in there, but at the same time I want to be able to hide it if the user wants.


Try removing the label control from your DataList instead of removing the column from the data source (i.e. the DataTable)

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

You shouldn't get an error if the data source has more columns than you're displaying on the page, however, you will get an error, as you've discovered, if you're trying to display a column that doesn't exist in the data source.


bind it in code behind after checking some condition. like

if (visible) {
    //bind
}

while removing control

  visible = false;

you might need to change visible to session var :)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号