Asp.net
如何在 KeyUp 上進行文本框回發?
我有一個文本框,可以更改 OnTextChanged 事件中下拉列表的內容。當文本框失去焦點時,似乎會觸發此事件。如何在 keypress 或 keyup 事件上發生這種情況?
這是我的程式碼範例
<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>所以在程式碼隱藏中,我在頁面載入時綁定下拉菜單。Code_TextChanged 事件只是重新綁定下拉列表。我希望這發生在每次按鍵時,而不是在文本框失去焦點時發生。
我最近繼承了這段程式碼,這對我來說不是理想的方法,但是時間限制阻止我在 web 服務方法中重寫它。
我嘗試使用 jQuery 綁定“keyup”事件以匹配文本框的“change”事件,但這僅適用於按下的第一個鍵。
這將解決您的問題。邏輯與凱爾建議的解決方案相同。
看看這個。
<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"); }我添加了額外的文本框以查看操作的變化,請刪除文本框。