Asp - Editing Hierarchical Data
Aug 13, 2010
I just finished making a change to an ASP.NET Ajax screen from a few years back. It was harder than expected to build and maintain. On this change, I estimated 12 hours and spent 4 days. Granted I also did extensive refactoring to simplify the code. This is actually some pretty fun code, but I wonder if there was a better route for the original implementation than the one I took. To start, here's a screenshot:
The Problem So obviously this is an editable tree of data. The data behaves very differently at each level -- very different sorting/collision rules and so on. My solution is actually performant and provides an adequate user experience, but it's nearly 2,000 lines of code spanning 11 classes, which is more than I envisioned going in. I'm curious if you've solved similiar problems and if you were able to find a simpler solution. It looks pretty straightforward at a glance, maybe that means I did something right. But there is some real complexity here -- obviously you can add and remove items at three different levels, and everything sorts similiar to a netflix queue, but with quirks. It also has to detect collisions on the various entities (in the image, if you changed day 5 to day 1, it would have to figure out which one is actually day one and move the other one).
The biggest problem was keeping track of the state, since users don't want to commit changes to the database as they work. I thought it might be possible to use the actual controls (nested repeaters in this case) to represent this interim state, but that ended up being a dead end due to complexities related to the underlying data. The Solution To solve this, I created a full blown XML representation of all the data, which was actually great in some ways since I was able to use LINQ to do a lot of heavy lifting around sorting and querying. Still, there is a lot of code in here related to syncing up the xml to the html and so on, and I had to make a pretty hefty abstraction on top of the xml to make it easy for me to work with it in code. In case you're interested, I am currently persisting the XML to session state so that it will survive across callbacks, but eventually that should go into the database.
One colleague told me it would be better to use Flex or maybe Silveright for something like this, and I think that might be true since those are both much more stateful, although Silverlight was not ready for prime time back when this started, and I don't know Flex. Maybe using a temp table instead of xml would have been superior in some way. I'm looking to learn and improve -- what have your experiences been with this type of problem?
View 1 Replies
Similar Messages:
Mar 15, 2010
I'm looking at building a facility which allows querying for data with hierarchical filtering. I have a few ideas how I'm going to go about it but was wondering if there are any recommendations or suggestions that might be more efficient.
As an example imagine that a user is searching for a job. The job areas would be as follows.
1: Scotland
2: --- West Central
3: ------ Glasgow
4: ------ Etc
5: --- North East
6: ------ Ayrshire
7: ------ Etc
A user can search specific (i.e. Glasgow) or in a larger area (i.e. Scotland).
The two approaches I am considering are:
keep a note of children in the database for each record (i.e. cat 1 would have 2, 3, 4 in its children field) and query against that record with a SELECT * FROM Jobs WHERE Category IN Areas.childrenField.
Use a recursive function to find all results who have a relation to the selected area.
The problems I see from both are:
Holding this data in the db will mean having to keep track of all changes to structure.
Recursion is slow and inefficent.
I'm using C# ASP.NET with MSSQL 2005 DB.
View 5 Replies
May 7, 2010
I have three level hierarchical data. using the statement below i managed to display two level data. I need to extend it to one more level.
Current hierachy is Modules-->Documents
I need to extend it as Packages-->Modules-->Documents
var data = (from m in DataContext.SysModules join d in DataContext.SysDocuments on m.ModuleID equals d.ModuleID into tempDocs from SysDocument in tempDocs.DefaultIfEmpty()
group SysDocument by m).ToList();
View 2 Replies
Mar 21, 2010
I have a table in SQL Server 2005.
I want to show all domain name in a dropdownlist maintaing the same hierarchy. i.e
Law
Engineering
--civil
--Mechanical
Medical
--Dental
----Cavity
--MBBS
I need to append '--' according to the domain level. Is it possible using a sql query. or alternatively can I have any other control to show this data.
View 3 Replies
Jan 19, 2010
how to display hierarchical data in checkboxlist
View 6 Replies
Dec 14, 2010
I'm building an asp.net mvc app, I want to build up an hierarchical structure, is IHierarchicalEnumerable and IHierarchyData the best way to implement a hierarchical structure?
View 1 Replies
Mar 29, 2010
When a user updates a record via detailsview in table 1 (TA), I need to display child records which are in table 2 (SG) and their child records which are in table 3 (SC). I tried to use DataList inside another DataList but I cannot filter the table 3 records based on returned values of table 2. I am also using TableAdapters and added a relation for table 3 to table 2 via both primary keys of table 2. I selected to create Both Relation and Foreign Key Constraint and Cascade as Accep/Reject Rule.
For my select statement on table 2, I filter it via WHERE (SGPrimaryKeyCd = :SGPrimaryKeyCd) AND (SGPrimaryKeyDate = :SGPrimaryKeyDate) and return the correct records based on values entered by the user.
For my select statement on table 3, I tried using a WHERE clause but didn't work. Without a Where clause I get all the records, of course. I thought relation would take care of filtering.
[Code].....
View 2 Replies
Dec 28, 2010
This maybe simple thign to you but I need to display data in below hierarchical format. I am using ASP.NET, VB.NET.
Company
- Product1
- Product2
- Product3
- Product4
There will be only 1 root node (Company) in my case. And it will have 1 or more child nodes. These child nodes will not have any further child, ie they are leaf nodes.
How to display this data in this format using ASP.NET & VB.NET?
View 1 Replies
Mar 27, 2010
I want to display child rows in the datagrid after the + sign is selected (like grouping & outlining in excel). This is automatic in infragistic grids but when i did in asp (no more infragistics) it doesnt work. here is my code (very simple stuff)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
DataSet ds = new DataSet();
ds.Tables.Add(myDataAccess.ExecuteSelectCommand("uspCategories"));
ds.Tables[0].TableName = "tblCategories";
ds.Tables.Add(myDataAccess.ExecuteSelectCommand("uspProducts"));
ds.Tables[1].TableName = "tblProducts";
DataRelation rel = new DataRelation("relation", ds.Tables[0].Columns["CategoryID"], ds.Tables[1].Columns["CategoryID"]);
ds.Relations.Add(rel);
GridView1.DataSource = ds;
GridView1.DataBind();
View 3 Replies
Jul 21, 2010
I'm in the process of developing a survey system. The tables / fields that are related to my question are:
[Code]....
My issues with this way were:
1) The Data Adaptors receive ALL the records from their correspondent tables. Not a good practice, I believe.
2) If, at some point, the survey had no categories, questions or choices under its child records, an error occurs when the page tries to build the Data Relation. With the work flow I had in mind for the system, this is bound to happen becuase all the Data entry pages (Add Category, Add Question, Add Choice) will be displaying the newly-created survey in a similar fashion (at which point, the survey will have no child records and so an error would occur)
View 3 Replies
Sep 9, 2010
I'm trying to understand how to build a self referencing model for hierachical data. Eventually i will be creating a category tree.
I don't anything in tables yet. After I have the structure nailed down then I will create the tables. My existing Object is defined like this:
public class Categories
[Code]....
View 1 Replies
May 20, 2010
I want to learn how to show html in a situation of a tabular format to One To Manyto make me understand I have the categories and subcategories for each category I wish we were all subcategories.I tried with a DataList, but the categories repeated for each subcategoryIs there a way to do it. For example in asp.net mvc I wrote everything in aspx page
View 3 Replies
Dec 13, 2010
how to create hierarchical grid using c#
View 1 Replies
Feb 6, 2010
I have a gridview that displays in the following manner. What I am trying to accomplish to is if you see the columns with the heading(s) Name, LegName, MedicalConditions, DateofBirth and id displays as two rows, as it normally would, but what I would like to do is to have all that data display in ONE Row because it all belongs to one registration. If you look at the two images, image one is how the data comes out of the DB normally. Image two is how I would like to be. keep in mind that this is a small example and I actually have more fields than just this, so I am looking for something extensible. Anyone have any thoughts on how I could modify the gridview to display my data like this?
View 2 Replies
Mar 19, 2010
i have a table with parent-child relationship wherein each child in turn can have multiple associated children. i want to display data in an hierarchical way with collapse and expand features.i dont want to use 'listview inside a listview inside a listview' approach. and yes i have googled it but cudnot find anything useful for my scenario. has someone successfully tried implementing this ?
View 4 Replies
Aug 11, 2010
So here is the situation - there is data on master records - its a hierarhical view - something like (ID, IDParent, Title) and detail data - (ID, IDMaster, Details)
And like to build UI using an TreeView - binded with master data - and an GridView - binded with detail data.
Question is witch property to use to create the master/detail chain between Datasources - oh, I've forgot to tell I'm using an ObjectDataSource?
View 3 Replies
Mar 16, 2010
I've data which looks something like this.
[code]....
To convert the above data into unordered list based on depth, I'm using the following code
[code]...
But the resulting unordered list doesnt seem to be forming properly(using which i am constructing a tree).For example "Site " with id '180' is supposed to appear as a direct child of "Televisions" with id '1',is appearing as a direct child of 'Flash' with id '191' using my code.so in addition to considering depth,I've decided to consider itemid as well in order to get the treeview properly.Those rows of the table with itemId not equal to null are not supposed to have a child node(i.e.,they are the leaf nodes in the tree) and all the other nodes can have child nodes.
Update:
The 'itemid' column refers to the id of an item which is present in another table.This column just in identifying if an item has any sub items(i.e., 'name' in my data in this case has any other unordered lists under it).
View 1 Replies
Dec 4, 2010
I want to make a hierarchical gridview with 1 freeze column.
i have freeze a column in general gridview but it was not working on internet explorer 8.
View 3 Replies
Feb 23, 2011
I have developed an application using Visual Studio 2008. I have a hirerchical gridview and on every row i have a "Payment" button which actually inserts a payment entry in database. Here is the sample screen of that gridview so u have an idea what i am doing. Problem is that whenever user pressed the button of "PAYMENT" it is inserting multiple records in database..it should only fire once and i am failed to understand why its firing multiple times. Refer this link for my payment screen: [URL]
[Code]....
My code behind--------------------
[Code]....
View 3 Replies
Apr 7, 2010
I have loaded up a gridview object with data. I have turned on Edit on the grid. It lets me edit the data, but I also want to put some code to check for correct data in each field. I tried to assign a requiredfieldvalitor, comparevaliditor but they don't work. Is there an event I can capture to fire up some code before the grid sves my data?
View 3 Replies
Feb 22, 2011
I have a datatable which i get from the databasemanager class, and i would need to transform that data into a hierarchical structure
either binding it directly to a .net treeview control or in memory first .
i have an ID column, and a ParentID column.what i do not know necessarily is the parent ID to start with. so first thing to do would be to find out which node is the parent ID.
what would be best practice to loop over this table and make it hierarchical
BranchId ParentId ProductCount HasBranchChildren Name
0 NULL 48 1 Categories
1 0 20 1 CategoryA
2 1 10 1 CategoryA1
3 1 8 0 CategoryA2
4 1 2 0 CategoryA3
5 2 4 0 CategoryA1.1
6 2 6 0 CategoryA1.2
7 0 28 1 CategoryB
8 7 20 0 CategoryB1
9 7 8 0 CategoryB2
this would be an example datatable of course it will have hundreds of items, and it does not always start at the root node, its possible that with a request a certain subset of categories is requested, however i've talked with the database team and they will give me NULL on root nodes in the above example that would be element 0 in the table ....
View 2 Replies
Jan 30, 2011
I am learning ASP.NET MVC with "Professional ASP.NET MVC 2" but it seems that I am still far away from basic knowledge. My problem is that I have a page where I must subscribe users for a tournament. My url is something like "Tournaments/Subscriptions/1" and it will show all users with a editable checkbox indicating if the user is currently subscribed. I have created a new ViewModel object called SubscriptionViewModel which is something like this:
[Code]....
But the method can't be called, since it gives the following error: No parameterless constructor defined for this object. Obviously I am making a big error here, but I don't know where to start.
View 5 Replies
Mar 2, 2011
Site.Master file contains
<ul id="nav">
<% Html.RenderAction("Menu", "ShoppingCart"); %>
</ul>
[ChildActionOnly]
public ActionResult Menu()
{
// for to geenrate menu ?
return ????
}
How to generate hierarchical menu below in Menu method from database data ? Should I use stringbuilder or is there better way ?
Resulting html shoudl look like:
[Code]....
View 64 Replies
Sep 15, 2010
i added a collection of data into a list box. i have another group of data with a group name.i want to add this group in to that same list box as a tree structure.
the sample list box is shown below.
item1
item2
item3
-group name
group item1
gruop item 2
gruop item 3
item 4
item 5
is there any way to do this. when clicking on the group name it must be expanded within the list box and i want to manage all these elements with an index.
View 3 Replies
Nov 17, 2010
I'm building an ASP.Net MVC 2 application with a component architecture. There are two different types of components: Elementary Components, which have an associated controller action rendering a partial view, and Layout Components, which render all their child components (Elementary Components or again Layouts) in a certain layout.Here is my generic RenderComponent() action method, which takes a component ID and renders the appropriate view:
[Code]....
Is my hierarchical component architecture incompatible with ASP.Net MVC? How would you build such a system in ASP.Net MVC?
View 1 Replies