jQWidgets Forums
jQuery UI Widgets › Forums › Grid › HTML in column, causes wrong data after applying filter › Reply To: HTML in column, causes wrong data after applying filter
My Javascript code:
var GetAttendeeGridData = function (theme, EventId) {
// prepare the data
var return_data = null;
var dataValue = {
EventId: EventId,
};
//get main grid data
Stomper.ajax({
url: '/Api/EventAttendees',
method: 'Post',
data: dataValue,
success: function (json) {
return_data = Stomper.CheckForError(json);
},
error: function (msg) {
Stomper.ShowErrorBox(msg.responseJSON.Message);
LoadAttendeeGrid(theme, null);
}
}).done(function () {
Stomper.HideLoading();
LoadAttendeeGrid(theme, return_data);
});
};
var LoadAttendeeGrid = function (theme, data) {
//rebuild controls, because height is set to auto. Content added before grid built.
$('#jqxradiobuttonYes').jqxRadioButton({ checked: true });
$('#jqxgridAttendee').jqxGrid('destroy');
$('#AttendeeGridParent').after('<div id="jqxgridAttendee" style="width:100%;margin-top:4px;"></div>');
var source =
{
localdata: data,
datatype: 'json',
datafields:
[
{ name: 'UserNameInfo', type: 'string' },
{ name: 'Alias', type: 'string' },
{ name: 'SignupDate', type: 'date' },
{ name: 'IsAttendingString', type: 'string' },
{ name: 'IsStomper', type: 'bool' },
{ name: 'IsSplit', type: 'bool' },
{ name: 'IsSupport', type: 'bool' },
{ name: 'Email', type: 'string' },
{ name: 'PhoneNumber', type: 'string' },
{ name: 'StomperSplitSupport', type: 'string' },
],
};
var dataAdapter = new $.jqx.dataAdapter(source, {
loadComplete: function (data) { },
loadError: function (xhr, status, error) { }
});
var SetFilter = function (which) {
var attendingFilterGroup = new $.jqx.filter();
var filter_or_operator = 0; //1 is for OR. 0 is for AND
var filtervalue = which;
var filtercondition = 'EQUAL'; //NOT_EQUAL
var attendingFilter1 = attendingFilterGroup.createfilter('stringfilter', filtervalue, filtercondition);
attendingFilterGroup.addfilter(filter_or_operator, attendingFilter1);
$('#jqxgridAttendee').jqxGrid('addfilter', 'IsAttendingString', attendingFilterGroup);
$('#jqxgridAttendee').jqxGrid('applyfilters');
};
$('#CloseAttendee').jqxButton({ theme: theme });
$('#jqxradiobuttonYes').jqxRadioButton({ theme: theme });
$('#jqxradiobuttonNo').jqxRadioButton({ theme: theme });
$('#jqxradiobuttonNA').jqxRadioButton({ theme: theme });
$('#jqxradiobuttonYes').bind('change', function (event) {
var checked = event.args.checked;
if (checked) {
$('#jqxradiobuttonNo').jqxRadioButton({ checked: false });
$('#jqxradiobuttonNA').jqxRadioButton({ checked: false });
SetFilter('YES');
}
});
$('#jqxradiobuttonNo').bind('change', function (event) {
var checked = event.args.checked;
if (checked) {
$('#jqxradiobuttonYes').jqxRadioButton({ checked: false });
$('#jqxradiobuttonNA').jqxRadioButton({ checked: false });
SetFilter('NO');
}
});
$('#jqxradiobuttonNA').bind('change', function (event) {
var checked = event.args.checked;
if (checked) {
$('#jqxradiobuttonYes').jqxRadioButton({ checked: false });
$('#jqxradiobuttonNo').jqxRadioButton({ checked: false });
SetFilter('NA');
}
});
//must be done before initializing grid
$('#jqxgridAttendee').bind('bindingcomplete', function () {
var localizationobj = {};
localizationobj.filterchoosestring = 'ALL';
$('#jqxgridAttendee').jqxGrid('localizestrings', localizationobj);
});
var IsHidden = false;
var IsMobile = Stomper.IsMobile();
if (IsMobile == true) {
IsHidden = true;
}
$('#jqxgridAttendee').jqxGrid(
{
source: dataAdapter,
editable: false,
theme: theme,
pageable: false,
sortable: true,
autoheight: true,
autowidth: true,
altrows: true,
columnsresize: true,
enabletooltips: true,
filterable: true,
showfilterrow: true,
ready: function () {
SetFilter('YES');
},
columns: [
{ text: 'Name', datafield: 'UserNameInfo', width: 310, cellsalign: 'center', renderer: columnsrenderer },
{ text: 'Type', datafield: 'StomperSplitSupport', width: 80, filtertype: 'list', renderer: columnsrenderer },
{ text: 'Email', datafield: 'Email', width: 240, cellsalign: 'center', renderer: columnsrenderer, hidden: IsHidden, filterable: false },
{ text: 'PhoneNumber', datafield: 'PhoneNumber', width: 160, cellsalign: 'center', renderer: columnsrenderer, hidden: IsHidden, filterable: false },
{ text: 'Attending?', datafield: 'IsAttendingString', columntype: 'checkbox', width: 0, cellsalign: 'center', filtertype: 'boolean', renderer: columnsrenderer, hidden: true },
],
});
$("#jqxgridAttendee").jqxGrid('setcolumnproperty', 'IsAttendingString', 'width', 0);
if (IsMobile == true) {
$("#jqxgridAttendee").jqxGrid('setcolumnproperty', 'Email', 'width', 0);
$("#jqxgridAttendee").jqxGrid('setcolumnproperty', 'PhoneNumber', 'width', 0);
}
};