The best way to do this is to set a default filter on your underlying dataSource:
$(document).ready(function () {
$("#dropdownlist").kendoDropDownList({
dataSource: {
data: [
{
id: 1,
text: 'show'
},
{
id: 2,
text: 'hide'
},
{
id: 3,
text: 'show2'
}
],
filter: { field: 'text', operator: 'neq', value: 'hide' }
},
dataTextField: 'text',
dataValueField: 'id',
filter: 'contains',
optionLabel: {
id: null,
text: '-'
}
});
});
Fiddle: https://dojo.telerik.com/uZAcIxil
Update
Since you indicated filtering the dropdownlist would blow away the filter, you could still use the default filter in the dataSource but you could hijack the dropdownlist's filtering event to always include the default filter:
$(document).ready(function () {
var defaultFilter = { field: 'text', operator: 'neq', value: 'hide' };
$("#dropdownlist").kendoDropDownList({
dataSource: {
data: [
{
id: 1,
text: 'show'
},
{
id: 2,
text: 'hide'
},
{
id: 3,
text: 'show2'
}
],
filter: defaultFilter
},
dataTextField: 'text',
dataValueField: 'id',
filter: 'contains',
optionLabel: {
id: null,
text: '-'
},
filtering: function(e) {
var filters = [ defaultFilter ];
if (e.filter) {
filters.push(e.filter);
}
e.preventDefault();
e.sender.dataSource.filter(filters);
}
});
});
Fiddle: https://dojo.telerik.com/ikoCitid