下面是使用jQuery的幫助,爲我工作的解決方案:
步驟1:SQL編寫存儲過程(接受一個輸入參數)來檢索數據庫紙張名稱(假設你使用SQL Server作爲DBMS):
create proc [dbo].[spGetMatchingPaperIds]
@PaperId nvarchar(Whatever size)
as
begin
select PaperId from TableStoringYourPaperIds where PaperId like @PaperId + '%'
end
GO
步驟2:Web服務 創建Web服務(並將其命名爲PaperSearchService.asmx或任何命名約定你遵循)和寫,將查詢您的DA功能tabase和檢索文件名的列表,像這樣:
[WebMethod]
public List<string> getPaperNames(string DeviceIdString)
{
List<string> paperNames = new List<string>();
string cs = ConfigurationManager.ConnectionStrings["YourConnectionStringToTheDatabase"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("spGetMatchingPaperIds", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = new SqlParameter("@PaperId", PaperId);
cmd.Parameters.Add(parameter);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
paperNames.Add(rdr["PaperId"].ToString());
}
}
return paperNames;
}
第3步:HTML標記 我假設你使用的是母版頁所以這應該去裏面你的內容佔位符之一。
使用開發者工具來檢查的jQuery的錯誤,則可能會在瀏覽器上按一下F12同時調試,並從CDN下載相關jQuery庫,只是它包含在你的主網頁,但我最後一次檢查其jquery-1.7.min.js
- 只需再檢查一次。這個前面提到的庫具有自動完成功能,否則它將無法工作。
<script type="text/javascript">
$(function() {
$('#<%= tbSearchContracts.ClientID %>').autocomplete({
source: function (request, response) {
$.ajax({
url: "PaperSearchService.asmx/getPaperNames",
data: "{ 'PaperId': '" + request.term + "' }",
type: "POST",
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
response(data.d);
},
error: function (result) {
alert('There is a problem processing your request');
}
});
},
minLength: 0
});
});
//Below are some nice-to-have's:
function CreateWaterMark(defaultText, textBoxControl) {
if (textBoxControl.value.length == 0) {
textBoxControl.style.color = "gray";
textBoxControl.value = defaultText;
}
}
function ClearWaterMark(defaultText, textBoxControl) {
if (textBoxControl.value == defaultText) {
textBoxControl.style.color = "black";
textBoxControl.value = "";
}
}
</script>
<asp:TextBox ID="tbSearchContracts" CssClass="whatever styling you have used" onblur="CreateWaterMark('Search Paper Names Here', this);" onfocus="ClearWaterMark('Search Paper Names Here', this);" onkeyup="hasPendingChanges()" Text="Search Paper Names Here" runat="server"></asp:TextBox>
您的'dgvPapers.Update();'行會不斷地訪問數據庫,從而嚴重影響您的性能。 –