如何使用asp C#从日期范围选择器中获取值

Posted

技术标签:

【中文标题】如何使用asp C#从日期范围选择器中获取值【英文标题】:How to get values from daterange picker using asp C# 【发布时间】:2018-12-17 08:09:10 【问题描述】:

我试图从日期范围选择器、范围、startDate 和 endDate 中获取值。 我的内容模板中有我的部分代码 .ascx

 <asp:TextBox ID="reportrange" runat="server" CssClass="DatepickerInput" />


<script type="text/javascript">
$(function () 

    var start = moment().subtract(29, 'days');
    var end = moment();

    function cb(start, end) 
        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    

    $('.DatepickerInput').daterangepicker(
        startDate: start,
        endDate: end,
        ranges: 
            'Today': [moment(), moment()],
            'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
            'This Month': [moment().startOf('month'), moment().endOf('month')],
            'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
        
    , cb);

    cb(start, end);

);

在我的 File.cs 我有这个

  string value = reportrange.values;

【问题讨论】:

有控制台reportrange的值吗? 这些值纯粹保存在 JavaScript 对象中,当您将表单发布到服务器时,它们不会随表单一起提交。发送到服务器的唯一值是文本框本身的实际值,即用户选择的日期。因此无法从 C# 访问它们。您必须做一些额外的事情才能将它们发送到那里,例如将值复制到隐藏字段中,或通过 AJAX 或其他方式发送它们。再说一次,您正在硬编码范围等的计算,它们是可预测的(不是基于用户数据),因此您可以使用 C# 重复相同的计算。 【参考方案1】:

我解决了我的问题如下 将日期选择器范围转换为文本框并获取文本

&lt;asp:TextBox id="reportrange" runat="server" CssClass="DatepickerInput" Text=" " style="width:100%"&gt;&lt;/asp:TextBox&gt;

以及背后的代码 获取文本并拆分开始日期,结束日期

string date= reportrange.Text;
string d_start= (date.Split('-'))[0];
string d_end = (date.Split('-'))[1];
string start= d_start + " 00:00:00.000";
string end= d_end + " 23:59:59.999";

【讨论】:

以上是关于如何使用asp C#从日期范围选择器中获取值的主要内容,如果未能解决你的问题,请参考以下文章

从日期选择器中获取价值

如何检查日期范围选择器中的日期是不是更改?

MVC:如何从日期选择器中移除焦点?

如何在 Twitter 引导日期选择器中禁用结束日期范围?

如何在 Asp.net MVC C# 中使用 Linq 从多个表中选择具有最大计数值的记录

如何将 Angular 日期范围选择器中的日期设置为该月的第一天