Как я делаю Обратную передачу Текстового поля на KeyUp?

Я рекомендовал бы получить хорошее основательное понимание дизайна GUI путем чтения книги Дизайн Повседневных Вещей . Хотя печатаемое основное является комментарием от Joel Spolsky : Когда поведение приложения отличается к тому, что пользователь ожидает происходить тогда, у Вас есть проблема с Вашим графическим интерфейсом пользователя.

лучший пример, когда кто-то подкачивает вокруг кнопки OK and Cancel на некоторых веб-сайтах. Пользователь ожидает, что кнопка OK будет слева, и кнопка Cancel , чтобы быть справа. Таким образом короче говоря, когда поведение приложения отличается к тому, что ожидает пользователь, что произойти тогда, у Вас есть проблема проектирования пользовательского интерфейса.

, Хотя, лучший совет, в, неважно, за каким шаблоном разработки или шаблоном разработки Вы следуете, состоит в том, чтобы сохранить дизайн и соглашения последовательными всюду по приложению.

24
задан Russ Bradberry 18 November 2009 в 18:57
поделиться

2 ответа

Это решит вашу проблему. Логика такая же, как и в решении, предложенном Кайлом.

Взгляните на это.

<head runat="server">
<title></title>
<script type="text/javascript">
    function RefreshUpdatePanel() {
        __doPostBack('<%= Code.ClientID %>', '');
    };
</script>

    <asp:TextBox ID="Code" runat="server" onkeyup="RefreshUpdatePanel();" AutoPostBack="true" OnTextChanged="Code_TextChanged"></asp:TextBox>
    <asp:UpdatePanel ID="Update" runat="server">
        <ContentTemplate>
            <asp:DropDownList runat="server" ID="DateList" />
            <asp:TextBox runat="server" ID="CurrentTime" ></asp:TextBox>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Code" />
        </Triggers>
    </asp:UpdatePanel>

Код выглядит следующим образом ...

 protected void Code_TextChanged(object sender, EventArgs e)
    {
        //Adding current time (minutes and seconds) into dropdownlist
        DateList.Items.Insert(0, new ListItem(DateTime.Now.ToString("mm:ss")));

        //Setting current time (minutes and seconds) into textbox
        CurrentTime.Text = DateTime.Now.ToString("mm:ss");
    }

Я добавил дополнительное текстовое поле, чтобы увидеть изменения в действии, удалите текстовое поле.

43
ответ дан 28 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: