我的要求是我的列表框和该文本框的顶部可用。当用户来搜索listBox项时,用户将键入Textbox。
我的代码是
<asp:TextBox ID="txtSearch" runat="server" AutoPostBack="True" onKeyDown="Search()"></asp:TextBox>
C#代码是
public void Search(object sender, EventArgs e)
{
string txtOrig = txtSearch.Text;
var filter = listTypesFilter.Where(c => c.NAME.IndexOf(txtOrig, StringComparison.OrdinalIgnoreCase) >= 0);
listTypes.DataSource = filter;
listTypes.DataBind();
}
我已尝试使用AutoPostBackTrue进行txtSearch_TextChanged事件,当我输入内容并单击Tab时,它工作正常。但是现在我需要当用户在文本框中键入内容时自动过滤器应该显示。
如果没有AutoCompleteExtender
,我们将不胜感激任何帮助或建议干杯
答案 0 :(得分:1)
我想在后面的代码中过滤你必须做回发。对于我的解决方案,你需要jquery。你可以试试这个:
<asp:TextBox ID="txtSearch" runat="server" AutoPostBack="True" OnTextChanged="Search" CssClass="txt"></asp:TextBox>
我在文本框中添加了一个css类,可以使用jquery轻松找到它。
$(document).ready(function () {
$('.txt').keyup(function () {
$(this).change();
});
编辑:您可以考虑使用更新面板“隐藏”回发或仅使用javascript进行过滤
edit2:等待输入结束的解决方法
var timeoutReference;
$(document).ready(function() {
$('txt').keypress(function() {
var _this = $(this); // copy of this object for further usage
if (timeoutReference) clearTimeout(timeoutReference);
timeoutReference = setTimeout(function() {
$('txt').change();
}, 500);
});
});
edit3:上面的代码应该有效。
答案 1 :(得分:0)
onKeyDown="Search()"
正在寻找JavaScript
函数Search
。
您需要一个客户端功能,例如:
<script type="text/javascript">
function Search() {
alert('Searching');
}
</script>
您可以使用jQuery autocomplete
答案 2 :(得分:0)
<asp:textbox id="txtBOX1" runat="server" OnTextChanged="txtbox1_TextChanged()" AutoPostBack=true/>
这应该有用.. 确保文本框控件的“自动回发后”设置为“
”