-4

我将如何包含一个文本框或一个命令,允许用户开始在文本框中输入两个或三个字母,结果自动完成并显示在面板中?

我感谢所有的帮助。我必须在一个项目中包含代码,该项目使用许多为大型大学图书馆执行财务的组件。这对某些人来说可能看起来很简单,但是当我使用完成自动完成的代码时,其他组件会记录错误。所以我不得不围绕其他资金/财务页面进行编码。如果我的问题似乎“表现出最低限度的理解”,我深表歉意

这是我的代码:

 <%@ Page Title="" Language="C#" MasterPageFile="~main.master" %>
 <script runat="server">

protected void btnAdd_Click(object sender, EventArgs e)
{
    sqlBooks.Insert();
    txtNewBook.Text = String.Empty;
    gvBooks.DataBind();
}
 </script>
 <asp:Content ID="Content2" ContentPlaceHolderID="cphMain" Runat="Server">
 <div id="awindow" >
<asp:Panel ID="Panel1" runat="server" CssClass="mainContent">
<div style="width: 100%; float: left">    
    <asp:Image ID="Image1" runat="server" ImageUrl=" "  Width="100%"/>
    <asp:TextBox runat="server"  style="margin-left:5px; float:left;" ID="txtNewTitle" />
    <asp:ImageButton runat="server" ID="btnAddTitle" Height="17px" ToolTip="Add New Book"      ImageUrl="~insert.png" OnClick="btnAd_Click"/>
</div>
<asp:SqlDataSource runat="server" ID="sqlBookLibs" ConnectionString="<%$   ConnectionStrings:dbbooks %>" ProviderName="<%$ ConnectionStrings:AllBooks.ProviderName %>" 
    SelectCommand="SELECT * FROM BookTitles ORDER BY Titles" 
    InsertCommand="BookTitles_GetOrCreate" InsertCommandType="StoredProcedure">
    <InsertParameters>
        <asp:ControlParameter ControlID="txtNewTitle" Name="titlename" />
    </InsertParameters>
</asp:SqlDataSource>

    <asp:GridView runat="server" ID="gvBooks" DataSourceID="sqlBookTitles" DataKeyNames="BookTitles" AutoGenerateColumns="false">
        <Columns>
            <asp:HyperLinkField HeaderText="Book Name"  DataNavigateUrlFormatString="~/BookTitles/Books.aspx?id={0}" DataNavigateUrlFields="PartnerID" DataTextField="BookName" />
        </Columns>
        <Columns>
             <asp:HyperLinkField HeaderText="Find Book Titles"  DataNavigateUrlFields="" DataTextField="" />

        </Columns>
    </asp:GridView>
</asp:Panel>
</div>
</asp:Content>
4

2 回答 2

1

做这件事有很多种方法; 您可以使用相关控件的AutoCompleteCustomSource,AutoCompleteModeAutoCompleteSource属性(单击控件并按 F4)。

或者,您可以像这样在运行时执行此操作:

yourTextBoxNameHere.AutoCompleteSource = AutoCompleteSource.AllSystemSources;
yourTextBoxNameHere.AutoCompleteMode = AutoCompleteMode.SuggestedAppend;

或者,您可以加载自定义源并将其数据绑定到您的控件:

yourTextBoxNameHere.AutoCompleteSource = AutoCompleteSource.CustomSource;

教程,这里这里这里

于 2013-09-26T22:06:09.360 回答
1

使用现有的服务器控件是不可能的。您必须使用某些控件,例如 JQuery 自动完成或 Ajax 自动完成扩展器。对于 Jquery 自动完成,您必须添加 js 文件,将其属性与文本框一起应用。如果是 Ajax Toolkit 自动完成扩展器,您必须将其引用添加到项目中,然后您可以将控件拖放到文本框旁边。您必须设置该控件的属性,例如“TargetControlID”并将 ot 设置为文本框 ID。

于 2013-09-27T03:48:29.797 回答