Поэтому я скрываю свой Flexigrid до тех пор, пока не будут найдены результаты поиска.
Итак, моя гибкая инициализация:
flexigrid({
url ='myUrl',
onSubmit: showFlexigrid(),
//my other flexigrid options
});
function showFlexigrid(celDiv, id) {
var flexiGrid = $('#gridTablegSearchProperty')
if (!flexiGrid.is(":visible")) {
if (id) { //got at least one result if id is not undefined
$('#flexigridWrapper').show();
} else {
//I want to display a no results found message to the user here
//but this won't work because the showFlexigrid function is
//not called on flexiReload()
console.log('no results');
}
}
}
//in my $document.ready my search button click implementation:
$("#btnSearch").click(function () {
$('#gridTablegSearchProperty').flexReload();
});
<!--And my html-->
<div id="flexigridWrapper" style="display:none;">
<div class="row">
<div class="col-lg-12">
<div class="well">
<div class="well-inner">
<table id="gridTablegSearchProperty"></table>
</div>
</div>
</div>
</div>
</div>
Так что, будь то flexigrid onSubmit или onSuccess, которые я связываю в моем Flexigrid "экземпляре", ни один из них не вызван на.flexReload, если по крайней мере на запись не возвращается. Я не вижу никакой гибкой опции, которая запускается каждый раз, даже если это не делает onSubmit.
Я думаю, что есть немного проблемы с синтаксисом, связанная с кавычками, с событием click в вашем $(document).ready()
. Посмотрите руководство по стилю jQuery для кавычек. Он гласит: "Строки, которые требуют внутреннего цитирования, должны использовать двойную внешнюю и единую внутри".