отображать время в текстовом поле и изменять стрелки вверх - PullRequest
2 голосов
/ 12 января 2010

Я хочу отобразить время в текстовом поле или в чем-то вроде числового расширения вниз, используемого в AJAX, чтобы пользователь мог изменять время по своему желанию

Я использовал элемент управления для отображения чисел и увеличения соответственно.

есть ли способ сделать это ..

новый код, но не то, что нужно ...

<asp:TextBox runat="server" ID="txtHour"></asp:TextBox>
<ajaxToolkit:NumericUpDownExtender ID="txtHour_NumericUpDownExtender" runat="server"   Enabled="True" Maximum="12" Minimum="1" TargetControlID="txtHour" Width="70"></ajaxToolkit:NumericUpDownExtender>

<asp:TextBox runat="server" ID="txtMinute"></asp:TextBox>
 <ajaxToolkit:NumericUpDownExtender ID="txtMinute_NumericUpDownExtender" runat="server" Enabled="True" Maximum="60" Minimum="1"  TargetControlID="txtMinute" Width="70"></ajaxToolkit:NumericUpDownExtender>

 <asp:TextBox runat="server" ID="txtDayPart"></asp:TextBox>
 <ajaxToolkit:NumericUpDownExtender ID="txtDayPart_NumericUpDownExtender" runat="server" Enabled="True" RefValues="AM;PM" TargetControlID="txtDayPart" Width="70"></ajaxToolkit:NumericUpDownExtender>

код позади:

 private void ParseTime(string TimeString)
    {

        // Validation of input

        if (TimeString.IndexOf(":") == -1)
        {

            return;
        }

        if ((TimeString.IndexOf("PM") == -1) && (TimeString.IndexOf("AM") == -1))
        {

            return;
        }

        // Good to go with format

        int ColonPos = TimeString.IndexOf(":");
        int AMPos = TimeString.IndexOf("AM");

        int PMPos = TimeString.IndexOf("PM");
        string sHour = TimeString.Substring(0, ColonPos);

        string sMinutes = TimeString.Substring(ColonPos, 3); string sDayPart = (TimeString.IndexOf("AM") != -1) ? TimeString.Substring(AMPos, 2) : TimeString.Substring(PMPos, 2);
        txtHour.Text = sHour;

        txtMinute.Text = sMinutes;

        txtDayPart.Text = sDayPart;
    }

Ответы [ 2 ]

2 голосов
/ 12 января 2010

Да, это должно быть довольно просто сделать с помощью updownextender. Просто прикрепите методы веб-службы к методу serviceupown и метод servicedown, которые увеличивают / уменьшают дату и время на требуемое время. Вы не опубликовали никакого кода, поэтому трудно понять, где вы застряли.

ОБНОВЛЕНИЕ: хорошо, подумав об этом, я не думаю, что есть какая-либо реальная причина использовать Updownextender с обратными вызовами сервера. Быстрый Google обнаружил, что javascript уже имеет некоторые базовые функции манипулирования датами, поэтому достаточно легко сделать все на стороне клиента.

Я не эксперт по javascript, поэтому следующий код, возможно, имеет сомнительное качество, но, кажется, работает нормально и, надеюсь, поможет вам установить правильный путь. Дайте мне знать, если вы все еще застряли.

<head runat="server">
    <title></title>
    <script type="text/javascript" language="javascript">
        <!--
            var date;

            function initDateObject()
            {
                date = new Date ( "January 1, 2000 12:00:00" );
                showTimePortion();
            }

            function showTimePortion()
            {
                document.getElementById('timeDisplay').value = padToMinimumLength(date.getHours(),2) + ':' + padToMinimumLength(date.getMinutes(),2) + ':' + padToMinimumLength(date.getSeconds(),2);
            }

            function padToMinimumLength(number, requiredLength)
            {
                var pads = requiredLength - (number + '').length;
                while (pads > 0)
                {
                    number = '0' + number;
                    pads--;
                }
                return number;
            }

            function addMinutes(n)
            {
                date.setMinutes(date.getMinutes() + n);
                showTimePortion();
            }

            function setTodaysTime()
            {
                var d = new Date();
                d.setHours(date.getHours());
                d.setMinutes(date.getMinutes());
                d.setSeconds(date.getSeconds());
                alert('the time is now ' + d.toString());
            }
        -->
    </script>
</head>
<body onload="initDateObject();">
    <form id="form1" runat="server">
    <div>
        <input type="text" id="timeDisplay" readonly="readonly"/>
        <a href="#" onclick="addMinutes(1)">+</a>
        <a href="#" onclick="addMinutes(-1)">-</a>
        <br />
        <a href="#" onclick="setTodaysTime()">Submit</a>
    </div>
    </form>
</body>
0 голосов
/ 12 января 2010

Хммм, я рекомендую вам потратить некоторое время на игры с jQuery, если вы этого не сделали. Надеюсь, это поможет.

jQuery UI

Джон Резиг

lovemore-world имеет хорошую статью, которая, надеюсь, может вдохновить вас и создать творческие соки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...