2009-03-22 25 views
5

Tôi đang xây dựng một ứng dụng kinh doanh trực tuyến trong Silverlight và cần phải yêu cầu người dùng chỉnh sửa hai giá trị .NET TimeSpan. Một là thời gian trong ngày (liên quan đến nửa đêm) và thời gian còn lại là một khoảng thời gian. Hiện tại tôi đang sử dụng hai TextBox, được định dạng là hh: mm. Điều này là khá đơn giản, nhưng nó chắc chắn có thể được cải thiện. Tôi đã quan sát mọi người sử dụng ứng dụng và trong khi một số người không gặp vấn đề gì khi nhập thời gian, những người khác đấu tranh.Cách trực quan, có thể sử dụng nhất để nhập thời gian trong ngày hoặc thời lượng là gì?

Vì tôi đang làm việc trong Silverlight2, bạn sẽ thấy điều khiển tùy chỉnh hoàn hảo dễ dàng cho phép bạn hình dung và chỉnh sửa hai TimeSpans này?

Để làm cho mọi việc trở nên khó khăn hơn, giao diện người dùng nên cho phép bất kỳ thời điểm nào trong ngày được chọn chính xác đến từng phút, nhưng nhấn mạnh thời gian trong ngày làm việc bình thường (ví dụ: 8:00 sáng - 5:00 chiều). Một số người dùng có xu hướng nhập 2:00 (sáng) khi họ thực sự có nghĩa là 2:00 chiều.

Trong ứng dụng của tôi, tôi đang có xu hướng sắp xếp thời gian và khoảng thời gian trong khoảng thời gian 5 phút. Như một chút của nền, ứng dụng này tương tự như một ứng dụng đặt phòng, nơi mọi người chỉ định khi nào và bao lâu họ muốn một căn phòng cho.

Trả lời

5

Trong một trong các ứng dụng web của tôi, tôi đã sử dụng thanh trượt có 2 tay cầm.

Ví dụ:

|.........Y-----------------Y...| 
     5AM    8PM 

Dĩ nhiên tôi không cần độ chính xác cao như bạn làm, nhưng tôi tin rằng với khoảng thời gian trượt 5min hơi dài sẽ có thể.

Để nhấn mạnh ngày làm việc bình thường, bạn có thể tô màu nền của thanh trượt với màu khác nhau cho ngày làm việc bình thường. Hoặc xử lý "snap" để bắt đầu và kết thúc ngày làm việc bình thường.

1

Điều này có thể phụ thuộc vào mức độ chính xác mà bạn cần dữ liệu của mình và mức độ khác nhau của dữ liệu. Nếu nó không cần phải được hoàn toàn chính xác và nó không thay đổi rất nhiều, bạn có thể làm một cái gì đó giống như

Task was performed at [select start time...] o'clock for [select duration...] 

nơi [chọn thời gian bắt đầu ...] là một thả xuống với mỗi giờ và [chọn thời gian ...] là một trường hợp kéo xuống với các trường hợp phổ biến cho những gì bạn đang theo dõi như "30 phút", "1 giờ", "2 giờ"

Nếu cần phải linh hoạt, có thể chỉ cần đi với cấu trúc câu và thay thế các kéo xuống với hộp văn bản sẽ làm cho nó rõ ràng cho tất cả người dùng lần đầu tiên.

+0

Điểm tốt về độ chính xác – geofftnz

1

Nhận mới nhất Sliverlight Toolkit và sử dụng một trong các Thời gian mới điều khiển định hướng

+0

Đề xuất tốt - tài liệu tôi đang làm việc với một vài tháng trước. – geofftnz

1

Nhìn vào Outlook có lẽ, nó sử dụng Dropdowns rằng mặc định là tiếng rưỡi lành mạnh (với tôi anyway;) và các lựa chọn sau đó có thể được chỉnh sửa bằng tay sau đó nếu muốn có độ chính xác cao hơn. Thời lượng cũng theo sau khi thời gian bắt đầu được thay đổi và mặc định là một giờ hoặc một thứ gì đó.

Tôi đã sử dụng các hộp văn bản trong một ứng dụng web cũ trước đây giống như bạn, với tùy chọn bổ sung là nhấp đúp vào chúng để hiển thị tiện ích con chọn nhanh như mẫu Outlook ở trên. Có lẽ một nút hoặc một số phép thuật Silverlight khác có thể tăng cường điều đó.

Dòng thời gian dọc như ngày theo lịch trong Outlook, nơi bạn có thể kéo đầu và cuối của cuộc họp "hộp" là cho tôi cách trực quan hoặc nhanh nhất để đặt và điều chỉnh đặt trước. Có lẽ nếu nó được điền sẵn với một trong đó kéo dài một giờ hoặc lâu hơn, dễ dàng kéo được để thay đổi thời gian bắt đầu - với phần trên cùng và dưới cùng có thể thay đổi để thay đổi thời lượng.

1

Mở rộng những gì Anthony nói, Bộ công cụ Silverlight Tháng 3 năm 2009 phát hành bao gồm TimePicker & Điều khiển TimeUpDown. Bạn có thể thấy một bản demo trực tiếp TimeUpDown và TimePicker với 2 popup tại địa chỉ: http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimeUpDown

tôi Trên thực tế sở hữu các tính năng thiết lập và API để kiểm soát này, vì vậy tôi rất tốt quen thuộc ngày nay với hình thức tốt nhất để thời gian đầu vào là những gì . Có một danh sách toàn bộ các phương pháp hay nhất mà chúng ta có thể nói về thời gian nhập liệu. Tất cả đều hiện đang dễ dàng tìm thấy trong các điều khiển.

Trên một số khái niệm, chúng tôi đã phải đổi mới (như tính năng "Thời gian Intellisense") nhưng chủ yếu là chúng tôi đã sử dụng các khái niệm thời gian thực được kiểm tra. (không có ý định chơi chữ)

Tuy nhiên, như một phần của mục tiêu không cho các điều khiển này cho v1, chúng tôi quyết định không hỗ trợ phạm vi thời gian. Nếu bạn cảm thấy rằng phạm vi thời gian là điều chúng tôi nên hỗ trợ, vui lòng đề xuất điều này trên codeplex: http://silverlight.codeplex.com/WorkItem/Create.aspx Chúng tôi chủ động ưu tiên các mặt hàng dựa trên số lượng phiếu bầu và kịch bản người dùng được gọi.

Hiện tại, tôi khuyên bạn chỉ nên sử dụng 2 TimePickers. Trực quan hóa nâng cao (như thước kẻ đa lựa chọn hoặc thanh trượt đa) là một cách để thực hiện nhập phạm vi thời gian, nhưng bạn phải có hệ thống nhập văn bản được tổng hợp toàn cục để có tùy chọn dự phòng.

+0

Cảm ơn bạn đã nhập Justin ... Tôi thực sự đang sử dụng bộ chọn thời gian của Bộ công cụ March09 ngay bây giờ. Tôi đã tạo một workitem mới cho một điều khiển thời lượng: http://silverlight.codeplex.com/WorkItem/View.aspx?WorkItemId=2392 – geofftnz

+0

Bạn không thể đánh lừa tôi. Chơi chữ đó hoàn toàn có ý định. – MojoFilter

+0

Tài liệu trên TimePicker ở đâu? Ví dụ, loại dữ liệu TimePicker.Value là gì? Tôi có liên kết nó với một TimeSpan hay một DateTime. –

1

Đây là thời điểm tuyệt vời để hỏi người dùng đang cố gắng thực hiện nhiệm vụ nào. Bạn có thể tạo hiệu suất cho hệ thống của mình dựa trên điều này. Ví dụ: trong Outlook, mọi người thường nhập thời gian vì họ đang cố lên lịch cuộc họp - vì vậy bạn có thể dễ dàng phân biệt "2" hoặc "2:00" nghĩa là 2 giờ chiều, vì rất ít người dùng đang cố lên lịch cuộc họp ở 2 là. Điều này nghe có vẻ tương tự như ứng dụng của bạn.

Nếu bạn nhìn vào người dùng của mình, họ cũng có thể sẽ lập lịch biểu cho những thời điểm thông thường - những điều này sẽ dễ dàng xác định trong giao diện của bạn. Ví dụ: nếu hầu hết các cuộc họp dài 50 phút, điều đó sẽ rất nổi bật, có thể là nút hoặc tùy chọn một cú nhấp chuột khác.

Tôi sẽ không khuyên bạn nên phát minh ra một tiện ích con đầu vào mới. Công cụ nhập liệu của bạn càng chuẩn, người dùng càng ít phải suy nghĩ khi sử dụng sản phẩm của bạn. Tập trung vào những thông minh trong logic của bạn, tìm ra (và hiển thị cho người dùng) những gì bạn nghĩ họ đang yêu cầu.

+0

Cảm ơn Alex, bạn đã đánh trúng móng tay khá nhiều. Tôi đã kết thúc bỏ ý tưởng thanh trượt để ưu tiên các điều khiển nhập thời gian trong Bộ công cụ Silverlight mới nhất. Chúng cho phép bạn nhập thời gian dưới dạng văn bản đơn giản và sẽ phân tích mọi thứ. Điều đó nói rằng, tôi hiện đang viết một số mã để nhập ngày và giờ từ hệ thống thời gian biểu hàng ngày xứng đáng của chúng tôi. – geofftnz

Các vấn đề liên quan