我已經設法使用webservice在C#.net中使用JQuery自動完成功能。從WebService填充自動完成
這裏是ASP代碼:
<div class="row">
<div class="span4">
<h3>
Manage Season</h3>
</div>
</div>
<div class="row">
<div class="span2">
<p>
<label class="control-label" for="TeamName">
Team Name:</label></p>
</div>
<div class="span3">
<asp:TextBox ID="TeamNameTextBox" runat="server" CssClass="searchinput"></asp:TextBox>
<asp:Button ID="AddTeamButton" CssClass="btn btn-primary" runat="server" Text="Add"
OnClick="AddTeamButton_Click" />
</div>
<script type="text/javascript">
$(document).ready(function() {
$(".searchinput").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "PredictiveSearch.asmx/GetAllPredictions",
data: "{'keywordStartsWith':'" + request.term + "'}",
dataType: "json",
async: true,
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Due to unexpected errors we were unable to load data");
}
});
},
minLength: 1
});
});
</script>
和C#的Web服務:
[System.Web.Script.Services.ScriptService]
public class PredictiveSearch : System.Web.Services.WebService
{
[WebMethod]
public IList<string> GetAllPredictions(string keywordStartsWith)
{
//TODO: implement real search here!
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["RaiseFantasyLeagueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("[dbo].[findEnglishTeams]", conn);
cmd.CommandType = CommandType.StoredProcedure;
string searchTerm = keywordStartsWith;
SqlParameter searchTermParam = new SqlParameter("@searchterm", searchTerm);
cmd.Parameters.Add(searchTermParam);
IList<string> output = new List<string>();
conn.Open();
SqlDataReader dReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dReader.HasRows)
{
while (dReader.Read())
{
output.Add(dReader["englishTeamName"].ToString());
}
return output;
}
else
{
return output;
}
}
}
我需要讓我很填充下拉與價值觀的ID,這是怎麼可能?
我不明白的問題,你能詳細點嗎?你的意思是你如何訪問web服務響應中的'data.d'? – 2013-03-18 18:11:28
那麼我的數據讀取器從數據庫中輸出團隊名稱,但我需要訪問團隊的ID號碼,將它們添加到排名表 – JackofAll 2013-03-18 18:14:45
是否有一個原因,你是通過類分配,而不是使用ID開始?它會暗示你有多個文本框你想綁定,但我只看到需要一個。如果是id導致的問題,因爲asp是添加到id的東西,使用ClientIDMode =「靜態」。 – Justin 2013-03-18 19:38:48