I have been asked to write a grid which tracks flexitime for employees. There are 4 weeks in a period, and we only count the working days for each week. On the verticle axis is day of the week; Monday to Friday, am and pm. On the horizontal axis is the 4 weeks, which are subdivided by time in, time out and number of hours for each day am and each day pm. Then there are total hours for each week, and a carried forward for each week. These have to be kept up to date if a user edits a time. The user can enter and edit the times in each cell. He may put in the number of hours, or he may enter a leave type from a ddl. Because of the complexity of this, either entering a time or selecting an entry in a drop down, I would like to enter the selection in a popup window, although I am open to other ideas. Now if I were using a Gridview, I could have an select button. However that would apply to the whole role. The problem is is that if I select Monday am, I would be selectin Monday am for all 4 weeks, rather than the one I am interested in. So should I use a LIstView instead? And should I use JQuery for client side popups? If i did, would I be able to update the total fields for each week as well? Look forward to hearing from you.
Can use a combination of ASP.net datagrid wrapped around an ajax update panel. The pop up could simply be an ajax modal popup extender. Do some googling regarding the popup extender. There are hundreds of examples of data entry inside of a modal popup. You can also make your app slick by changing the background / transperancy of the main window when the modal popup opens up.
You have some quite specific requirements that don't appear to be stuff that you would get "out of the box" with any existing grid control. So while it would be possible to do this with various different controls, personally, I would opt for something that gives me the greatest control over the markup and control IDs and then use jQuery to get the effects I needed.
In other words, I would use an asp:Repeater.
Simplify this by using separate GridViews. For example, you could have one GridView representing a daily view - the user would get here by selecting the day of their choice from a Calendar. You could then have separate GridViews for weekly/monthly views. If you try to code this as a single GridView, you will tie yourself up in knots.
I would avoid the repeater because of its limited functionality and also because I'm guessing that clean markup is not a priority here, as this sounds like an internal application? :-)