加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在KeyUp上进行文本框回发?

发布时间:2020-12-16 00:40:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个Textbox可以更改OnTextChanged事件中的下拉列表的内容。当文本框失去焦点时,这个事件似乎会触发。如何在按键或键盘事件上进行此操作? 以下是我的代码示例 asp:TextBox ID="Code" runat="server" AutoPostBack="true" OnTextChanged="Code_TextChan
我有一个Textbox可以更改OnTextChanged事件中的下拉列表的内容。当文本框失去焦点时,这个事件似乎会触发。如何在按键或键盘事件上进行此操作?

以下是我的代码示例

<asp:TextBox ID="Code" runat="server" AutoPostBack="true" OnTextChanged="Code_TextChanged">                

<asp:UpdatePanel ID="Update" runat="server">
    <ContentTemplate>
        <asp:DropDownList runat="server" ID="DateList" />             
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Code" />
    </Triggers>
</asp:UpdatePanel>

所以在codebehind中,我绑定页面加载的下拉列表。 Code_TextChanged事件只是重新绑定下拉列表。我希望这可以在每个按键上发生,而不是当文本框失去焦点时。

我最近继承了这段代码,这不是为我这样做的理想方法,但时间限制阻止我在Web服务方法中重写。

我已经尝试使用jQuery绑定“keyup”事件来匹配文本框的“更改”事件,但这只适用于第一个按键。

解决方法

这将解决您的问题。逻辑与凯尔提出的解决方案相同。

看看这个。

<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");
    }

我添加了额外的文本框来查看更改的操作,删除文本框。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读