sheep
unread,Feb 20, 2012, 12:52:31 AM2/20/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to jmesa_forum
i try like this,but it doesn't succeed
public class AutoFilterEditor extends AbstractFilterEditor
{
@Override
public HtmlColumn getColumn()
{
return (HtmlColumn)super.getColumn();
}
public Object getValue()
{
HtmlBuilder html = new HtmlBuilder();
Limit limit = getCoreContext().getLimit();
HtmlColumn column = getColumn();
String property = column.getProperty();
Filter filter = limit.getFilterSet().getFilter(property);
String filterValue = "";
if (filter != null)
{
filterValue = filter.getValue();
}
html.div().styleClass("dynFilter");
html.onclick("jQuery.jmesa.createAutoDynFilter(this, '" +
limit.getId() + "','" + column.getProperty() + "')");
html.close();
html.append(escapeHtml(filterValue));
html.divEnd();
return html.toString();
}
}
createAutoDynFilter : function(filter, id, property) {
if (autoDynFilter) {
return;
}
autoDynFilter = new classes.DynFilter(filter, id,
property);
var cell = $(filter);
var width = cell.width();
var originalValue = cell.text();
/* Enforce the width with a style. */
cell.width(width);
cell.parent().width(width);
cell.css('overflow', 'visible');
cell.html('<div id="dynFilterDiv"><input
id="dynFilterInput" name="dynFilterInput" style="width:' + (width + 3)
+ 'px" value="" /></div>');
var data = new Array("100000","110000","111000");
$("#dynFilterInput").autocomplete(data, {
minChars: 0,
max: 12,
autoFill: true,
scroll: true,
mustMatch: false,
matchContains: false,
scrollHeight: 220,
formatItem: function(data, i, total) {
return data[0];
}
});
var input = $('#dynFilterInput');
input.val(originalValue);
input.focus();
$(input).keypress(function(event) {
if (event.keyCode == 13) { /* Press the enter key. */
var changedValue = input.val();
cell.text('');
cell.css('overflow', 'hidden');
cell.text(changedValue);
$.jmesa.addFilterToLimit(autoDynFilter.id,
autoDynFilter.property, changedValue);
$.jmesa.onInvokeAction(autoDynFilter.id,
'filter');
autoDynFilter = null;
}
});
$(input).change(function() {
var changedValue = input.val();
cell.text('');
cell.css('overflow', 'hidden');
cell.text(changedValue);
$.jmesa.addFilterToLimit(autoDynFilter.id,
autoDynFilter.property, changedValue);
$.jmesa.onInvokeAction(autoDynFilter.id, 'filter');
autoDynFilter = null;
});
},
<jmesa:htmlColumn property="number" title="number" editable="false"
filterEditor="com.base.AutoFilterEditor" width="50"/>