I've been working in ASP.net for over three years now.
The project I'm working on is designed with a 3-layer presentation/business/data design. The presentation layer is an ASP.net web site. The business and data layer are also in .net, with the data layer working with a SQL server.
Recently, I've had to add several new screens to my ASP.net web application. The order from my customer was essentially, "Take these Excel Spreadsheets and put them on the web so that I don't have to pass them around to the different people who make edits and I don't have to worry about keeping track of the changes." Sounds simple, right?
Well, I've been doing this, but I feel as if I'm making the project more difficult than it needs to be.
I'd like to tell you how I've done this and I'd like to know how I can improve my process.
(1) I showed the spreadsheets to my DBA who created a table for each spreadsheet with a column for each column on the spreadsheet. Let me emphasize that in my office, only the DBA is allowed to change anything about the structure of the data in SQL.
(2) I created functions in my business and data layers that
(a) Get the rows from the tables.
(b) Insert rows.
(c) Update rows.
(3) I coded an ASP.net web page to user the ASP.net GridView to display the tabular data to the user. There is one button the user can click to add a new row and another button the user can click to edit an existing row.
(4) I wrote JavaScript so that upon a button click, the user sees a form he can use to add a new row or edit an existing row.
(5) I wrote some ASP.net page methods that allow the user to send changes back to the ASP.net server using AJAX once he fills out the form.
(6) I wrapped the ASP.net GridView in an ASP.net UpdatePanel so that the table can be refreshed without reloading the whole page.
That is my process. I've been doing this for each spreadsheet I received from my customer. I feel like there ought to be a better way to do this.
I have a co-worker who really likes the DHTMLX stuff, but that would only possibly replace or simplify steps 4 and 6.
What is a better way to accomplish what my customer wants?