public static SlickFormatter TreeToggle <TEntity>(Func <SlickRemoteView <TEntity> > getView, Func <TEntity, object> getId, SlickFormatter formatter) { return(delegate(SlickFormatterContext ctx) { var text = formatter(ctx); var view = getView(); var indent = (((object)ctx.Item._indent).As <Int32?>() ?? 0); var spacer = "<span class=\"s-TreeIndent\" style=\"width:" + (15 * (indent)) + "px\"></span>"; var id = getId(((object)ctx.Item).As <TEntity>()); var idx = view.GetIdxById(id); var next = view.GetItemByIdx(idx.Value + 1); if (next != null) { var nextIndent = ((object)(((dynamic)next)._indent)).As <Int32?>() ?? 0; if (nextIndent > indent) { if (Q.IsTrue(ctx.Item._collapsed)) { return spacer + "<span class=\"s-TreeToggle s-TreeExpand\"></span>" + text; } else { return spacer + "<span class=\"s-TreeToggle s-TreeCollapse\"></span>" + text; } } } return spacer + "<span class=\"s-TreeToggle\"></span>" + text; }); }
public static SlickColumnFormatter ConvertToFormatter(SlickFormatter format) { if (format == null) { return(null); } else { return (row, cell, value, column, item) => { return format(new SlickFormatterContext { Row = row, Cell = cell, Value = value, Column = column, Item = item }); } }; } }