在asp.net C#中输入月份和年份范围

时间:2016-06-08 05:46:14

标签: c# asp.net

我想创建基于Windows窗体的应用程序,它接受两个参数的详细设置,月份和年份。用户可以选择动态选择年份和月份,然后根据这些参数生成没有数据库的报告。

有人可以建议如何接受月份和年份范围的参数(例如,范围是2015年1月到2016年1月,那么用户可以输入值范围从2015年1月,2015年2月,.........,2016年1月)然后根据这两个参数会有报告吗?

2 个答案:

答案 0 :(得分:2)

您可以使用jQuery datepicker并将年份限制为仅限2015-2016。

以下是示例代码:

<p>Date:
    <input type="text" id="datepicker" />
</p>

$(function () {
    $("#datepicker").datepicker({
        changeMonth: true,
        yearRange: '2015:2016',
        changeYear: true
    });
});

注意:如果您只想要月份和日期,只需创建一个下拉菜单并对该选项进行硬编码即可。我不确定你在问什么:)

这是Fiddler链接:

https://jsfiddle.net/v2verma1990/zsz8Lgb2/

编辑后我认为您需要的是动态文本框来显示月份和年份。看到这段代码:

<html>
    <head runat="server">
        <title></title>
      <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>



    <script type="text/javascript">
    function GetDynamicTextBox(value) {
        return '<input name = "DynamicTextBox"  class="dynamic"  type="text" value = "' + "mymonthname" + '" />' +
            '<input name = "DynamicTextBox1"  class="dynamic"  type="text" value = "' + "myYearname" + '" />' +
                '<input type="button" value="Remove" onclick = "RemoveTextBox(this)" />'
        }
        function AddTextBox() {
            var div = document.createElement('DIV');
            div.innerHTML = GetDynamicTextBox("");
            document.getElementById("TextBoxContainer").appendChild(div);
        }

        function RemoveTextBox(div) {
            document.getElementById("TextBoxContainer").removeChild(div.parentNode);
        }

    //    function RecreateDynamicTextboxes() {
    //        var values = "vishal";
    //        if (values != null) {
    //            var html = "";
    //            for (var i = 0; i < values.length; i++) {
    //                html += "<div>" + GetDynamicTextBox(values[i]) + "</div>";
    //            }
    //            document.getElementById("TextBoxContainer").innerHTML = html;
    //        }
    //    }
        </script>

    </head>

    <body>
        <form id="form1" runat="server">

        <div id="TextBoxContainer" style="text-align: center;" class="step" >
    </div>

        <div>
        <div style="text-align: center;" id="setPrinteraxcis1">
    <input id="btnAdd" type="button" value="Add" onclick="AddTextBox()" class="ANPClass"/>
    </div>
        </div>
        </form>
    </body>
    </html>

PS :我已经将输入作为字符串添加到文本框中,您可以从任何其他来源(例如textbox1.text)获取该输入,并在按钮单击时调用,根据需要进行修改。

答案 1 :(得分:1)

对于WinForms和ASP.NET,方法类似,但控件的方式不同。

但是,Windows Forms应用程序的工具箱中有DateTimePicker。它具有Format属性,您需要将其设置为Custom。然后另一个属性 - CustomFormat - 需要设置为MM-yyyy来显示,并为用户提供仅选择几个月和几年的机会。

如果你使用ASP.NET,这意味着你需要一个基于HTML的控件来完成这项工作。有很多这些,他们是免费的。我个人使用Twitter Bootstrap或jQuery UI。这两个都有加载项。