What is best way to allow user to pick date from a mobile device from usability prospective?
I'd detest any form of drop-down, select-list when using a mobile app.
Unfortunately, three separate boxes (for day, month and year) would be equally painful on a MIDP-profile device.
I'd almost suggest using one text box, and do a DateTime.TryParse(String, out DateTime) to get the result. That allows them to type in any number of formats.. and the bulk of the time it'll work okay.
Also, if you gave them a hint on the form as to the correct formatting (e.g. 12 Mar 2009) then it'd probably be the format they use.
Are you building WAP page in asp.net? You have a DatePicker control in the mobile toolset. On devices that supports it this will render as a regular date picker (as in regular asp.net) while on more limited devices it will render as a series of selectors where you first select the year, then the month and finally the date. Unless you have a good reason to do otherwise you should use this I think.
Related
I have a UWP app that has many Date entry fields and I currently use the DatePicker to provide the three spinners for day, month and year. In most cases this works well for my users, but where the field is a date of birth it's causing some issues for the users. They are complaining about having to scroll back through the years, in some cases many of them. Is there a way to extend or override the spinner for the year to change the behaviour of the arrow buttons to skip forward or backward ten at a time?
I've looked at using the CalendarView but I think this introduces UX issues when selecting the actual day, I feel it's more suited for mouse use rather than touch.
Any help or pointers much appreciated
I am aware that the HTML 5 input tag, when used with type="date", needs to be fed an RFC 3339 full date as described here. Lots of questions here, such as this one, mention this.
However, browser support for the date type input tag varies a lot. For example, Safari on iOS 7 uses a nice date picker on which you can flip up and down to select day, month and year separately. Internet Explorer 10, on the other hand, does not handle date type input tags in any special way, treating them as plain text input tags.
When we put these two facts together, we find the following. If I feed the date type input tag on my page a properly-formatted RFC 3339 full date, as expected, it displays it nicely in browsers that have special support for it, such as Safari on iOS 7. However, the input tag shows an ugly and user-unfriendly yyyy-mm-dd date on browsers that don't handle it in any special way, such as Internet Explorer 10. I can't afford to show yyyy-mm-dd dates to my users, so I thought that I would rather feed my input tags user-friendly formatted dates, such as dd/MMM/yyyy (that's the format we use over here). But then, this works OK on browsers that handle it as simple text, like Internet Explorer; on Safari on iOS 7, which expects a proper RFC 3339 full date, the date type input tag appears blank.
So I am stuck. I guess I need a way to manually handle browse support individually, and programmatically format my dates according to what browser the client is using. My questions are these:
Do I really need to do that, or is there a workaround?
If I need to do that, can you please suggest a simple approach? I am using ASP.NET, C# and Bootstrap 3.
I would rather avoid introducing additional frameworks such as modernizr just to solve this problem. I can always go back to using plain text tags if this is too difficult or cumbersome to fix.
Thank you.
See this. It recommends 2 polyfills. This one and this one. Both look pretty good. Doing browser detection then special formatting is messy, so I don't recommend it.
I'm trying to design a calendar-type table that is built dynamically based on data from a separate database source.
This is an illustration of the basic design idea:
Here's an image:
If an object was added that was referenced to a Saturday, another column would be added and if the one on Monday was removed, the column would disappear and vice versa.
The weekdays are column headers and the squares represents cells with some lines of information. Each cell in its whole should be clickable.
The entire table should show a single month only.
I'm thinking this might be very time consuming to implement, and will quite quickly become impossible to re-read and understand later on if it isn't designed right. So if anyone has a more simple way to implement a month-view of a calendar, with some lines of information stored in each cell, and a possibility to call Server.Transfer() on the click event of a cell, it would be just as ideal.
As far as I know, the Calendar component doesn't support editing the contents of the cells in calendar, and other than that I don't really know which way would be the best way to go.
If I can improve the question in any way, please let me know.
I think what you want is not a Calendar, but rather a Scheduler control, which includes functionality to display a calendar view, add/edit "appointments" and provide events of what happens when you click them.
This thread lists a lot of such Scheduler control that you can use, some of them free.
Here are some additional links that implement similar functionality:
http://www.rekenwonder.com/aspnet/schedule.html
http://www.codeproject.com/Articles/7619/Databound-Schedule-Controls
http://www.codeproject.com/Articles/31766/DayPilot-Scheduler-Control-for-ASP-NET
I think reusing one of those components and spending some time to research them would be much less time consuming that implementing your own solution from scratch. If what you want falls into those common UI patterns supported by those controls, you'll be fine.
If, on the other hand what you want is not a common practice, you may rethink your approach.
I was commissioned to build the following:
Web app to be accessed by all mobile devices - so no Flash/SilverLight/HTML5...
Main page will contain a calendar of current month (ability to navigate to other months is not required)
Each day should display one or more jobs (I am thinking 2 lines of text for each job), and each of these jobs may have a different color, depending on the time.
Database is SQL Server, hosted on GoDaddy, on the same hosting account as the page will live.
I am a newbie in web development and I would like to get some guidance of the best/easiest approach to implement this. Since I am a .Net Windows developer ASP.Net (or MVC) would be the preferred technology (unless you recommend a different one for this problem). I would really appreciate specific help on things like what control to use? Should I create a grid/table manually? How to customize each day's content, so it shows multiple jobs, each job being a couple of lines of text, but with specific color according to the job type?
(in WPF I would use templates, converters for color and everything data-bound. Do these things exist in Asp.Net?)
Thank you so much for your help!
Those links might help you:
Some javascript/JQuery calendar: http://www.webdesignbooth.com/9-useful-jquery-calendar-and-date-picker-plugins-for-web-designers/
A databound templated calendar control for Asp.Net: http://www.codeproject.com/KB/webforms/MellDataCalendar.aspx
You might look at jquery UI calendar or Telerik extension for MVC. It's not "fancy" but javascript.
I am working on the prototype for a scheduling application on an intranet system. The application is for scheduling and tracking promotional workers at various locations on various dates.
Currently, only for prototyping, I am generating a data table of location/date, and from this I iteratively build an HTML table (asp:Table control). On visiting each cell, I query for people working that location-date and populate the cell accordingly. This is very inefficient, and will at worst be improved by querying cached data for the whole location/date grid.
I'm looking around for established patterns and techniques for dealing with scenarios like this in HTML in general, maybe a visualization library for jQuery or something, and for ASP.NET in particular, maybe a library for implementation on a GridView etc.
Am I going in the right direction with this, and if so, what recommendations are there regarding the previous paragraph?
As regards the user interface, I would take a look at the Telerik scheduler control and see how that one is done. You don't want table cells stretching the layout, and even filtering may not help you unless you truncate the displayed text as a link to a modal pop-up, or some kind of master-details set up.
http://demos.telerik.com/aspnet-ajax/scheduler/examples/overview/defaultcs.aspx
Why don't you try placing the calender control on the left side and then select the current date by default. Thereafter user can select a date and you can list the data using a gridview based on the selected date-location. That should ease up the interface as well.
These controls are complex, and there are many third party vendors out there with components like these. Take a look around at some of the components available to you, as it is A LOT of work to develop a component like this yourself (we were going to attempt to do it, but realized to make it efficient and usable we needed to buy one, so we purchased Telerik).
HTH.