jqueryData-Tableへのデータソースとして機能するJavaコントローラーにユーザー定義パラメーターを渡そうとしています。重要なのは、jspのコンボボックスの変更イベントでこれを実行したい(パラメーターを渡す)ことです。
これが私のデータテーブルの初期化です:
var oTable = $('#reqAllQueriesTable')
.dataTable(
{
"sDom": '<"H"l<"projectTeamTools">frtip>',
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "query/getQuery",
"bPaginate" : true,
"bLengthChange": true,
"bScrollCollapse" : true,
"iDisplayLength" : 10,
"bFilter" : true,
"bJQueryUI" : true,
"sPaginationType" : "full_numbers",
"sSearch": "Search"
});
値がコントローラーに渡されるコンボボックスとそれぞれの機能は次のとおりです。
$("div.projectTeamTools").html('Organize by Project Teams: <select id="projectTeams"><option value="0">Project Team</option><option value="1">All</option><option value="2">Not Associated</option><c:forEach var="projectTeam" items="${userProjectTeams}"><option value="${projectTeam.projectId}">${projectTeam.projectName}</option></c:forEach></select>');
$("#projectTeams").change(function () {
onTeamSelect($(this).val());
});
function onTeamSelect(teamId){
alert(teamId +" Selected");
//This function to pass the parameter to the datatable is supposed to be here.
oTable.fnDraw();
}
次に、datatableは、ajaxSourceから受信した新しいデータを表示しますgetQuery
。
PS:古いバージョンのデータテーブルを使用しているため、fnServerParamsを使用できません。fnServerDataを使用してみましたが、役に立ちませんでした。fnServerDataでajax関数を使用する方法が間違っていると思います。
"fnServerData": function ( sSource, aoData, fnCallback ) {
$("#projectTeams").change(function() {
aoData.push( { "name": "myParam", "value": $("#ComboBox option:selected").value() } );
$.ajax( {
"dataType": 'json',
"url": sSource,
"data": aoData,
"success": fnCallback
});
コンボボックスからアイテムを選択すると、ブラウザの「ネットワークXHR」に渡したいパラメータが表示されません。助けてください!