私はclsUtilities
という名前のクラスとPhoneBook_SearchCustomers
という名前のクラスを持っています。私はFName
とそれに対応するId
を取りたいです。私のDataTable
はId
とFName
の両方を持っています。今度はDataTable
をリストに変換します。 List<object> ids = (from row in ss.AsEnumerable() select row["FName"]).ToList();
。 Id
を同じ行に入力する方法がわからないので、これをJavaScriptに渡すことができます。私のASP.NET MVCプロジェクトでオートコンプリート機能を実装したい
マイclsUtilities
クラス
public DataSet CreateCommandwithParams(string queryString, SqlParameter[] prms)
{
string mConnString = ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(mConnString))
{
SqlCommand cmd = new SqlCommand(queryString, conn);
cmd.CommandType = CommandType.Text;
if (prms != null)
{
foreach (SqlParameter p in prms)
{
cmd.Parameters.Add(p);
}
}
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
conn.Open();
da.Fill(ds);
return ds;
}
}
マイホームコントローラー
[HttpPost]
public JsonResult AutoComplete(string prefix)
{
clsUtilities cUtils = new clsUtilities();
DataSet ds;
SqlParameter[] prms = new SqlParameter[1];
string sSQLName;
sSQLName = " PhoneBook_SearchCustomers @FName";
prms[0] = new SqlParameter("@FName", SqlDbType.VarChar);
prms[0].Value = prefix;
ds = cUtils.CreateCommandwithParams(sSQLName, prms);
DataTable ss = ds.Tables[0];
List<object> ids = (from row in ss.AsEnumerable() select row["FName"]).ToList();
return Json(ids);
}
私はJavaScript
$(function() {
$("#txtCustomer").autocomplete({
source: function (request, response) {
// debugger;
$.ajax({
url: '/Home/AutoComplete/',
data: "{ 'prefix': '" + request.term + "'}",
dataType: "json",
type: "POST",
data: JSON.stringify({ prefix: request.term, count: 20 }),
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data, function (item) {
debugger;
return item;
}))
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
debugger;
$("#hfCustomer").val(i.item.val);
},
minLength: 1
});
});
コントローラからval
値を取得する方法を私を導いてください。 valは未定義を示しています。前もって感謝します。
をPOSTメソッドは一つのパラメータのみ '公共化するJsonResultオートコンプリート(文字列のプレフィックスを)受け入れる'いずれかの方法で、これはないだろう他に変更する必要があります – Niladri
@GGO、あなたの答えをありがとう。しかし、私はIDからFNameを得た方法のようにIdをコントローラから取得しなければならない。私はそれを得る方法を知らない。私に提案してください。 – Raj
@ニラドリ、私は唯一の問題はデータベースからIDを取得することだと思います。このコードは私にFNameを与え、FNameを返します。しかし、私は戻り値JName(ids)でFNameとIdを返したい。 – Raj