Webdevbytes
Webdevbytes

Reputation: 35

Create nested checkboxes in asp.net 2.0

Whats is the best method to create nested checkboxlists in ASP.net?

Should I be using a datagrid? Should I be using a treeview with checkboxes enabled?

I have the data I need in a datatable, and would like to loop through through it to create a checkboxlist with a nested chechboxlist for each parent checkbox.

Cheers!

Upvotes: 1

Views: 2701

Answers (4)

user52898
user52898

Reputation:

I've never been a fan of grids, instead, I use repeaters/listviews and for each row I have a UserControl that is responsible for showing the row data, and further repeaters for sub-data.

Tiny example:

<asp:repeater id... runat...>
    <itemtemplate>
        <uc1:MyRowControl id... runat... OnSomeEvent='MyRowHandler' Model='<%# (MySubData)Container.DataItem %>'
    </itemtemplate>
</asp:repeater>

and so on internally. Events is easy to handle when you do like this.

Upvotes: 3

Nick
Nick

Reputation: 4223

The Telerik RadAjax control suite has a tree view that can do this

treeview checkbox support demo

You can bind to a hierarchical data source or to an xml document, create your own templates, etc.

Upvotes: 2

devstuff
devstuff

Reputation: 8387

It really depends on your data requirements, your database schema and the UI technology.

For web sites I've had a lot of success with nested UL/LI tags created from hierarchical "paths"; this allows me to hide/check/etc all checkboxes under a parent by finding the child list.

I use the "path" technique from Itzak Ben-Gan; he has lots of MS SQL Server-related stuff on his site at www.sql.co.il and also has an article "Maintaining Hierarchies" on www.sqlmag.com, with downloadable code.

HTH.

Upvotes: 0

Dave Swersky
Dave Swersky

Reputation: 34810

I would use a Treeview for this, but the ASP.NET 2.0 Treeview control doesn't have templated nodes. If you want to use a Treeview it would have to be a third-party control that supports templates.

You could also "roll your own" user control (or composite control if you're feeling ambitious) with CSS positioning or tables. More work, but free.

Upvotes: 0

Related Questions