Как получить фокус на TextBox после PostBack и почему элемент управления Repeater показывает данные, когда TextBox пуст? - PullRequest
1 голос
/ 15 сентября 2011

Я работаю над проектом C# ASP.NET 4, где мне нужно иметь окно поиска, которое динамически ищет содержимое из таблицы базы данных и показывает его в Repeater Control каждый раз, когда я вводю алфавит в TextBox.

Я сделал это до этого, но проблема в том,1) Я теряю фокус на TextBox каждый раз, когда вхожу в один алфавит2) Когда я стираю содержимое в TextBox, Repeater Control по-прежнему показывает данные

<asp:TextBox ID="TextBox1" runat="server" Width="90%" 
                                ontextchanged="TextBox1_TextChanged" 
                                onKeyUp="return serachme()" 
                                AutoPostBack="false"></asp:TextBox>
                                <script language="javascript" type="text/javascript">
                                    function serachme() {
                                        __doPostBack('<%=TextBox1.UniqueID %>', "onKeyUp");
                                    }
                                </script>

И,

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    con.Open();
    SqlDataAdapter mycommand2 = new SqlDataAdapter("select qid,title from globalq where title like '%" + TextBox1.Text + "%'", con);
    DataSet ds = new DataSet();
    mycommand2.Fill(ds);
    askQ.DataSource = ds;
    askQ.DataBind();
    con.Close();
}

Я уже видел примеры Установите фокус в TextBox послеpostback и Установить фокус в TextBox после обратной передачи , но не понял этого, потому что я не знаю JavaScript так много.

Так что мой вопрос1) Как сфокусироваться на TextBoX каждый раз, когда я __doPostBack?2) Когда я стираю содержимое в TextBox, почему Repeater Control все еще показывает данные и как их не показывать?

Спасибо за ваши усилия заранее,

Nikhil

1 Ответ

1 голос
/ 15 сентября 2011

Вы пробовали это?:

con.Open(); 
SqlDataAdapter mycommand2 = new SqlDataAdapter("select qid,title from globalq where title like '%" + TextBox1.Text + "%'", con); 
DataSet ds = new DataSet(); 
mycommand2.Fill(ds); 
askQ.DataSource = ds; 
askQ.DataBind(); 
con.Close(); 

//apply focus back to textbox
TextBox1.Focus();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...