我有以下textBox -
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
MinimumPrefixLength="1" ServiceMethod="PRETURN" ServicePath="WebService1.asmx"
TargetControlID="TextBox1"> </asp:AutoCompleteExtender>
当用户输入"TextBox1
"时,向WebService1.asmx
发送请求,并调用PRETURN
业务方法。因此,当用户输入时,textBox会显示一个字符串下拉列表,这些字符串以用户输入的字母开头。
我现在有以下数据列表-
<asp:DataList runat="server" ID="pTextBox" >
<ItemTemplate>
<asp:CheckBox ID="CheckBoxPN" runat="server" Checked='false' OnCheckedChanged="CheckBoxPN_CheckedChanged" AutoPostBack="true" />
<asp:TextBox ID="profileTextBox" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:TextBox>
</ItemTemplate>
</asp:DataList>
Where on Page_Load
-
WebService1 ws = new WebService1();
pTextBox.DataSource = ws.Method();
pTextBox.DataBind();
我的问题是我想把文本框和数据列表的功能结合起来。这样,当用户在textBox中输入时,DataList中的行就会更新,而不是textBox有一个下拉列表。因此,例如,如果profileTextBox
中的文本在用户键入时不包含TextBox1中的前缀文本,则它将消失。给用户留下一个与其搜索相关的行列表。我怎样才能做到这一点呢?
其他人已经做了类似于GridView控件的事情,使用JQuery根据过滤条件显示/隐藏行。这里提供了一个解决方案,可以很容易地适应数据列表。