私のプロジェクトでMVC3を使用しています。テーブルにjqueryテーブルソーターの問題があり、jsonテキストの壁を受け取る
私は、DDL、検索ボタン、テーブルの束を持つビューを持っています。 ユーザーは値を選択してから検索ボタンを押すと、ヒットしたすべてのデータがテーブルに表示されます。
これは、検索ボタンをクリックするための私のjqueryのコードです:
$(function() {
$('#submitfloat').click(function() {
var SubjectTypes = $('#SubjectTypes').val();
var Teams = $('#Teams').val();
var Companies = $('#Companies').val();
var Consultants = $('#Consultants').val();
var PlannedDates = $('#PlannedDates').val();
var CompletedDates = $('#CompletedDates').val();
var DateTypes = $('#DateTypes').val();
var data = {
Subjectypes: SubjectTypes,
Companies: Companies,
Teams: Teams,
Consultants: Consultants,
PlannedDates: PlannedDates,
CompletedDates: CompletedDates,
DateTypes: DateTypes
};
$.post('@Url.Action("Search", "SearchNKI")', data, function (result) {
$("#GoalcardSearchResult tbody").html('');
result.forEach(function (goalcard) {
$("#GoalcardSearchResult tbody").append(
$('<tr/>', {
click: function() {
// todo: redirect
alert(goalcard.Id);
},
html: "<td>" + goalcard.Name + "</td><td>" + goalcard.Customer + "</td><td>" + goalcard.PlannedDate + "</td><td>" + goalcard.CompletedDate + "</td>"
}));
});
});
return false;
});
});
これは私のコントローラである:私は私のjQueryの表ソーターを追加するとき
[HttpPost]
public JsonResult Search(SearchQueryViewModel model)
{
var goalcard = SearchRep.FindGoalCard(model); // My LINQ
return Json(goalcard.Select(x => new GoalCardViewModel(x)));
}
すべてが正常に動作しますが、:
<script type="text/javascript">
$(document).ready(function() {
$("#GoalcardSearchResult").tablesorter();
});
</script>
[検索]ボタンをクリックすると、このJsonテキストの壁が表示されます。
![] [1]
[1]:私は私の検索ボタンをクリックしてjqueryのコードをデバッグするとき
私は、これがなぜ起こるか分からない、私は表ソーターjqueryのを追加するときにも、実行され得ていませんコード。原因は何ですか?
テーブルソーターを追加すると、ボタンクリックjqueryコードの実行がブロックされ、サーバー側に直接ジャンプしてjsonが返されることがわかりました。
ありがとうございます!
実行してしまったいくつかのマイナーな変更で、修正表ソーターコードでしたコードを知りません。ライブ/デリゲートを使用する代わりに、各結果にクリック機能をバインドする理由はありますか?デバッグは難しいですが、追加機能にバグがあります。 –