【问题标题】:Bootstrap datepicker not highlighting date in calendar in edit mode of gridviewBootstrap datepicker在gridview的编辑模式下没有突出显示日历中的日期
【发布时间】:2016-02-18 01:43:27
【问题描述】:

我使用实体框架在 asp.net mvc5 中使用 MVCGrid 和编辑和删除按钮。当我单击“编辑”按钮时,会打开引导模式弹出窗口以显示数据。日期属性显示正确,但我希望引导日历突出显示所选日期。目前它突出显示今天的日期。

从数据库中获取的日期是 11/10/2015 (mm/dd/yyy),日历上突出显示的是今天的日期(11 月 16 日)。有没有办法解决这个问题。

我在局部视图_Edit中使用的脚本文件是:-

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js">
</script>
<link href="~/Content/bootstrap-datepicker3.css" rel="stylesheet" />

<script src="~/Scripts/bootstrap-datepicker.js"></script>

<script>
    $(function (data) {

        $('.datepicker').datepicker(
            {
                format: "yyyy-mm-dd",
                autoclose: true
            }
            );


    });
</script>

这是使用日期选择器的代码:-

<div class="form-group">
                        @Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-3" })


<div class="col-md-9">
                        @Html.TextBoxFor(model => model.Date, new { @class = "datepicker" })
                        @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
                    </div>
                    </div>

【问题讨论】:

    标签: jquery twitter-bootstrap entity-framework datepicker asp.net-mvc-5


    【解决方案1】:

    正确的答案是在编辑模式下我的日期与默认时间一起打印。但如果它只是日期,那么它会完美地突出日历中的日期。在 dateFormat 中选择 datepicker 中的格式,而不是我之前使用的“格式”标签。同样在渲染文本框时使用 @Value = Model.Date.Value.ToString("MM/dd/yyyy")(小毫米是分钟,所以在这里使用 MM)。 (对于我在这里尝试使用 shortdatetimeString 时抛出了错误,所以我按照上面的方式使用。)

    我的更改如下:-

    <script>
        $(function (data) {
    
            $('.datepicker').datepicker(
                {
                    dateFormat: 'mm/dd/yyyy',
                    pickDate:true,
                    autoclose: false
                }
                );
    
        });
    </script>
    
     <div class="form-group">
                            @Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-3" })
                            <div class="col-md-9">
                              @Html.TextBoxFor(model => model.Date, new { @Value = Model.Date.Value.ToString("MM/dd/yyyy"), @class = "datepicker" })
                            @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
                            </div>
                        </div>
    

    【讨论】:

    • 有很多方法可以获得,你的解决方案有一个问题,你需要记住每次使用 datetime 时都要进行这个更改,更好一点的是使用 EditorTemplates codeguru.com/csharp/.net/net_asp/mvc/…
    【解决方案2】:

    我遇到了同样的问题,这让我很头疼,我确实解决了:

    $('input[type=date]').prop('type', 'text').datepicker({
        autoclose: true,
        forceParse: false,
        language: "it-IT"
    });
    

    您需要以相同的格式输出您的日期,您可以在您的 Web.Config 中添加 &lt;globalization culture="it-IT" uiCulture="it-IT" /&gt;&lt;system.web&gt;

    查看页面输入的页面来源,日期是如何打印在输入标签内的。

    【讨论】:

    • 对我没用,但我发布了对我有用的答案。感谢您的回复:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多