> it mysteriously has 10 empty rows
Those rows are VERY important for the client-side code to bind new data to the grid properly. Do NOT bind to an empty datasource in the code-behind. That may save you some bytes but will cause you headaches in the client.
For example, if you bind to an empty datasource:
- the "totals" count is forever screwed (always says items "0 to x of y").
- because set_virtualItemCount(n) internally calls set_currentPageIndex(0), your grid will fire an extraneous "page" command, which depending on whether you are fetching data on such a command, may send your grid rebinding again.
- because the first call to dataBind() must create new table rows for the data (as they were excluded by the empty datasource binding), depending on the size of your data IE6 will freeze completely (100 rows ought to lock it up for a solid minute).
- If you use GridClientSelectColumn NONE of your new rows will have their checkboxes
- The GridClientSelectColumn header checkbox will render "checked" for some reason.
The reason for the first 4 is that Telerik has taken the approach of re-using the existing DOM rows to rebind new data to. The pros of doing this are (presumably): they don't need to re-create any controls that the server created (like the checkbox in GridClientSelectColumns) and speed.
Just a word of warning.
> The "NoRecordsTemplate" appears to be working in Q3 SP1
Yes, it appears they hide/show that first row (the row that the NoRecords message got rendered to) on dataBind() depending on if there are records or not. Simple hack. I personally want to be able to change that message dynamically (for example depending on what the user filtered on), but alas, no "set_noRecordsMessage()" method exists in the client.