How do I make a Textbox Postback on KeyUp? How do I make a Textbox Postback on KeyUp? asp.net asp.net

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>