【问题标题】:I want to pass variables from C#(ASP.NET 4.5) button event to a JQuery function我想将 C#(ASP.NET 4.5) 按钮事件中的变量传递给 JQuery 函数
【发布时间】:2026-02-17 08:20:03
【问题描述】:

我一直在尝试学习如何将变量从我页面中的 C# 方法传递到 JQuery DateTimePicker。我的 C# 工作正常,但我找不到与将我的 DateTime 值从 C# 传递到 JQuery DateTimePicker 的特定任务相关的好的教程。我在这里看过并尝试了一些东西,但它们不起作用。

我不指望任何人为我解决它,我要求一个关于将数据从 C# 传递到 JQuery 函数的良好而可靠的教程,特别是在日期时间,所以我可以自己解决它。

我已经尝试了 JQuery 站点,但找不到任何东西。

提前致谢。

当前的 DTP Jquery 代码为:

 <script type="text/javascript">
                            $( function ()
                            {
                                $( '#datetimepickerFrom' ).datetimepicker( {
                                    format: 'DD/MM/YY HH:mm',
                                    stepping: 30,
                                    toolbarPlacement: "bottom",
                                    showTodayButton: true,
                                    showClear: true,
                                    collapse: true
                                } );

                                $( '#datetimepickerTo' ).datetimepicker( {
                                    format: 'DD/MM/YY HH:mm',
                                    stepping: 30,
                                    toolbarPlacement: "bottom",
                                    showTodayButton: true,
                                    showClear: true,
                                } );
                                $( "#datetimepickerFrom" ).on( "dp.change", function ( e )
                                {
                                    $( '#datetimepickerFrom' ).data( "DateTimePicker" ).minDate( e.date );
                                } );

                                $( "#datetimepickerTo" ).on( "dp.change", function ( e )
                                {
                                    $( '#datetimepickerTo' ).data( "DateTimePicker" ).maxDate( e.date );
                                } );
                            } );

    $( "input[id$='btnMonth']" ).click( function ()
                            {
                                var MonthFrom = $( "#HiddenMonthFrom" ).val();
                                var MonthTo = $( "#HiddenMonthTo" ).val();
                                alert( MonthFrom + " to " + MonthTo );
                                $( '#datetimepickerTo' ).data( "DateTimePicker" ).setDate(MonthFrom);                          
                            } );

我已经添加了这个,现在可以从隐藏字段中获取数据:

C# 代码来自网页上的按钮。

    protected void btnYesterday_Click(object sender, EventArgs e)
    {         
        DateTime b = a.GetYesterDayDateTimeFrom();//Gets the from date and time eg: Yesterday at 4pm
        DateTime c = a.DateTo();//Is the date to value eg: tomorrow at 3pm
        //Here is where I want to pass the dates to the JQuery DTP
    }

【问题讨论】:

  • 页面加载时是否有起始日期和截止日期的静态值?如果是这种情况,那么有两个隐藏的输入字段将在页面加载和单击按钮时存储这些 fromDate 和 toDate,而不是返回到 btnYesterday_Click() 函数后面的代码,而是在同一页面中调用一个 js 函数然后将抓取之前存储在隐藏输入字段中的值。
  • 我想用点击事件更新日期字段。页面首次加载时的日期值为空。因此,如果我放置两个隐藏字段并使用按钮事件将值分配给它们,那么我可以使用 JQuery 来获取这些值。这可以动态完成,还是每次都必须重新加载页面?
  • 您可以动态执行此操作。你应该看看 asp:UpdatePanel 这个
  • 我已经添加了隐藏字段,现在可以获取数据了,谢谢。它很有魅力。问题是当我点击 button.click 函数时,日期时间选择器不会改变它的日期。我已经尝试过 setDate、Update 并在 GitHub 上查看过,有什么想法吗?我在上面的代码中添加了编辑

标签: jquery asp.net c#-4.0 bootstrap-datetimepicker eonasdan-datetimepicker


【解决方案1】:

假设您使用的是我的选择器,请将您的代码更改为使用 date([newDate])

$( "input[id$='btnMonth']" ).click(function ()
{
    var MonthFrom = $( "#HiddenMonthFrom" ).val();
    var MonthTo = $( "#HiddenMonthTo" ).val();
    alert( MonthFrom + " to " + MonthTo );
    $('#datetimepickerTo').data("DateTimePicker").date(MonthFrom);                          
});

【讨论】:

  • 我尝试了所有排列,但很明显。您先生是一位绅士和一位学者......一切顺利