代码之家  ›  专栏  ›  技术社区  ›  SoftwareGeek

ASP.NET日期时间选择器

  •  28
  • SoftwareGeek  · 技术社区  · 15 年前

    是否有任何好的免费/开源时间选择器控件与ASP.NET日历控件配合使用?

    8 回复  |  直到 11 年前
        1
  •  27
  •   Chuck Conway    15 年前

    datepicker 依我拙见虽然它不是特定于.Net的,但它仍然非常有效。

    <input type="text" value="9/23/2009" style="width: 100px;" readonly="readonly" name="Date" id="Date" class="hasDatepicker"/>
    

    在head元素中:

    <script src="../../Scripts/jquery-1.3.2.min.js" language="javascript" type="text/javascript"/>
    <script src="../../Scripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"/>
    

    就这么简单!

        2
  •  43
  •   TylerH Ash Burlaczenko    4 年前

    你问题的答案是

    ASP.NET日历控件只编写一个HTML表。

    如果您使用的是HTML5和.NET Framework 4.5,则可以改用ASP.NET文本框控件并设置 TextMode 然后,您可以读取文本属性,从文本框中以字符串形式获取日期、时间、月或周。

    如果您使用的是.NETFramework4.0或旧版本,那么您可以使用HTML5 <input type="[month, week, etc.]"> ; 如果您的浏览器不支持此功能,请使用 <input type="datetime"> .

    如果用户在日期字段中输入的信息需要服务器端代码(用C#或Visual Basic编写),则可以尝试通过编写 runat="server" 在输入标记内部。 与所有ASP一样,请确保为该元素提供一个ID,以便您可以在服务器端访问它。

    <input type="[date/time/month/week/etc.]" . 在submit函数(用JavaScript编写)中,将隐藏字段的值设置为输入类型=“日期”、“时间”、“月”或“周”的值——然后在服务器端代码中,将该隐藏字段的值属性也作为字符串读取。

        3
  •  30
  •   Ehsan Vivek Bernard    6 年前

    在文本框中添加以下内容:

    textmode="Date"
    

    DatePicker

    这方面的其他变化包括:

    textmode="DateTime"
    

    它给你这样的感觉:

    Date Time Picker

    textmode="DateTimeLocal"
    
        4
  •  8
  •   sshow Darron Smith    15 年前

    因为这是我唯一使用过的日历扩展器,我建议使用 http://www.ajaxcontroltoolkit.com/

        5
  •  5
  •   Bojan Jovanovic    7 年前

    这是没有jquery的解决方案。

    在WebForm中添加日历和文本框->WebForm的来源有:

    <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange">
    </asp:Calendar>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    

    在WebForm的cs文件中创建方法:

    protected void Page_Load(object sender, EventArgs e)
        {
            TextBox1.Text = DateTime.Today.ToShortDateString()+'.';
        }
    
        protected void DateChange(object sender, EventArgs e)
        {
            TextBox1.Text = Calendar1.SelectedDate.ToShortDateString() + '.';
        }
    

    DatePicker Image

        6
  •  4
  •   jizhihaoSAMA    4 年前
    <asp:TextBox ID="TextBox1" runat="server" placeholder="mm/dd/yyyy" Textmode="Date" ReadOnly = "false"></asp:TextBox>
    <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
    
        7
  •  3
  •   recursive    15 年前

    Basic Date Picker Lite

    这是他们旗舰产品的免费版本,但它包含一个asp.net原生的日期和时间选择器。

        8
  •  3
  •   rockXrock    10 年前

    尝试 bootstrap-datepicker 如果您使用的是引导。

        9
  •  2
  •   Patrick Hofman Wahid Bitar    8 年前

    有一个简单的开箱即用的实现:HTML5 input type="date" 以及其他与日期相关的输入类型。

    好吧,你不能设计那么多控件 doesn't work on every browser

        10
  •  1
  •   Ehsan Vivek Bernard    5 年前

    如果要使用文本框,请注意,将TextMode属性设置为“日期”在Internet Explorer 11上不起作用,因为它当前不支持“日期”、“日期时间”或“时间”值。

    此示例演示了如何使用文本框实现它,包括日期验证(因为用户可以只输入数字)。它将在InternetExplorer11以及其他web浏览器上工作。

    <asp:Content ID="Content"
             ContentPlaceHolderID="MainContent"
             runat="server">
    
    <link rel="stylesheet"
        href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
       <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
       <script>
       $(function () {
       $("#
       <%= txtBoxDate.ClientID %>").datepicker();
       });
     </script>
     <asp:TextBox ID="txtBoxDate"
               runat="server"
               Width="135px"
               AutoPostBack="False"
               TabIndex="1"
               placeholder="mm/dd/yyyy"
               autocomplete="off"
               MaxLength="10"></asp:TextBox>
     <asp:CompareValidator ID="CompareValidator1"
                        runat="server"
                        ControlToValidate="txtBoxDate"
                        Operator="DataTypeCheck"
                        Type="Date">Date invalid, please check format. 
     </asp:CompareValidator>
     </asp:Content>
    
        11
  •  1
  •   Abdulhakim Zeinu    5 年前
    @Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control", @type = "date" } })