Failure is inevitable


liteGrid’s RowSortModule

Aside from a slew of bug fixes and minor changes, the biggest thing to happen to liteGrid this week is the addition of the RowSortModule.  This module enables client-side sorting and works on both regular and tree-grid tables.  You can check it out on the updated demo.  As usual, everything in liteGrid just bolts on, so all you have to do is add RowSortModule to your list of modules, set the “sortable” property to true on the columns you wish to allow sorting by, and you’re all set: $(function() { $("#demoTable").inrad_liteGrid({ columns: [ ... [More]

liteGrid’s new provider model for layout

I just committed a major change to liteGrid.  Prior to this change, liteGrid’s core was responsible for most of the table rendering.  It would render a basic table with a header and no rich-UI functionality.  All the niceties (resizable columns, jQuery UI integration, fixed header row) were added by the LayoutManager module.  This worked, but required a few ugly hacks, such as shifting the table behind the fixed header row.  It also introduced some module-to-module coupling issues that I didn’t like.  Some modules (such as the sortable columns one I’m working on) ... [More]

liteGrid Prototype Demo

I have created a simple prototype to show off some of the basic features of liteGrid.  The demo is available on SVN, or you can access it online here.  As liteGrid uses a data provider model, I had to implement a fake provider (see demoProvider.js).  It maintains a pseudo-random in-memory database of widgets on the client.  In order to simulate the time a normal AJAX request might take, all calls to the provider have a 500ms delay.  Again, even though this is not release-quality yet, feedback is still welcome and appreciated. 

liteGrid code now available!

The source code for liteGrid is now available on Google Code!  Note that this is *NOT* a release, it’s just an announcement that the code is now available, as promised.  I still have several things I want to do to the code base before I consider it release-worthy.  If you are interested in helping out, please drop me a line.  If you run into any issues, feel free to log them on the Google Code issue tracker.  Generic feedback is also very welcome, feel free to leave it as a comment here or E-mail me directly.

What’s up with liteGrid?

Tons of progress has happened with liteGrid since my last in-depth post.  At this point, I think I’ve met all the goals I defined, and I’m very happy with it, in terms of both functionality and design.  Here’s what the current set of modules provides (remember all of this is mix-and-match, so you can tailor it to what you need): AJAX-based data provider supporting retrieval, updates (both multi-row batch and single-cell modes), updates, and inserts, with full support for retrieving and rebinding database-populated values post insert/update (more on this in a future post) Batch... [More]

Standardizing JSON Responses in ASP.NET MVC

ASP.NET MVC provides very nice support for returning JSON data, but my chief complaint with it is that it’s too flexible.  You can basically cram anything you want in it and trust that it will make it to the client script, which has lead to a complete lack of coherence among the various controllers in our big MVC application.  Some actions return a simple string that contains either “success” or “error” depending on whether or not the operation succeeded.  Others return true or false.  This is going to cause maintenance problems down the road, so we are taking a stab at sta... [More]

Internet Explorer 8 table-layout bug

If you’ve been following me on Twitter, you no doubt know that I’m fighting rendering problems with Internet Explorer 8.  Today, I have finally tracked down one very elusive bug.  The problem occurs in liteGrid when a user clicks on a cell to edit it.  The contents of the cell are placed with an input element.  When the user is finished, they can toggle out of edit mode by pressing escape, enter, or changing the focus to a different element, at which point the input is removed and replaced with the new value.  In IE8, the cell width will randomly lose 3 pixels of width... [More]

Integrating jEditable with liteGrid

Work continues on liteGrid (I believe that’s the name I’m going to stick with), and in fact so much has changed that I really don’t even know where to start when talking about it.  The core has been changed around a bit (for the better), many new modules have been added, an AJAX data provider has been added… it’s been a busy couple of weeks.  Today, I thought I would start with something fairly straight-forward: a new module that brings the power of jEditable into liteGrid.  If you recall my previous post, I basically wrote all the cell-editing script from scratch.  It wo... [More]

Using web.config files in ASP.NET MVC unit tests

TestDriven.NET (and apparently the Resharper test runner) will automatically pick up app.config files, making the contents available to unit tests, but they do not pick up web.config files in web projects.  After some Googling, I found this post that describes the solution.  To paraphrase, just add a post-build event that copies the web.config file to the bin folder and gives it the correct name, like so: copy /Y “$(ProjectDir)Web.config” “$(TargetDir)$(TargetFileName).config Thanks, Sebastien!