我正在开展一个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();
}
我已经看到了Set focus in TextBox after postback的例子
和Set focus in TextBox after postback但我不理解,因为我不知道JavaScript
那么多。
所以我的问题是
1)每次TextBoX
时如何关注__doPostBack
?
2)当我删除TextBox
中的内容时,为什么Repeater Control
仍显示数据以及如何不显示数据?
感谢你提前做出的努力,
尼基尔
答案 0 :(得分:1)
你试过这个吗?:
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();