How do I make a Textbox Postback on KeyUp?
This will solve your problem. Logic is same as the solution suggested by Kyle.
Have a look at this.
<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>
Code behind goes like this...
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"); }
I have added additional textbox to see change in action, do remove the textbox.
Here is a simple way to do it with javascript, an update panel, gridview, sqldatasource and a textbox. As you type it searches the table and displays the results. Short and sweet, no code behind.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test3.aspx.vb" Inherits="test3" %><%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title> <script type="text/javascript"> function runPostback() { document.forms["form1"].submit(); document.getElementById("TextBox1").focus(); } function getFocus(){ var text = document.getElementById("TextBox1"); if (text != null && text.value.length > 0) { if (text.createTextRange) { var FieldRange = text.createTextRange(); FieldRange.moveStart('character', text.value.length); FieldRange.collapse(); FieldRange.select(); } }}function SetDelay() { setTimeout("runPostback()", 200);} </script></head><body onload="getFocus()"><form id="form1" runat="server"><div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="TextBox1" /> </Triggers> <ContentTemplate> <asp:TextBox ID="TextBox1" onkeyup="SetDelay();" runat="server"></asp:TextBox> <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:purchasing2ConnectionString %>" SelectCommand="SELECT [name] FROM [vendors] WHERE ([name] LIKE @name + '%')"> <SelectParameters> <asp:ControlParameter ControlID="TextBox1" Name="name" PropertyName="Text" Type="String" /> </SelectParameters> </asp:SqlDataSource> </ContentTemplate> </asp:UpdatePanel></div></form>