Hi All -
I'm pulling my hair out a bit -- I have a self-referencing hierarchical grid and I want to automatically scroll to the selected record when I post back (when adding or editing a record). I can select the record on postback fine, and when the record is in the master tableview the position works, but if the selected record is in a child tableview, the position does not work. Below is the code I am using... any ideas?
Thanks
Ford
function GridCreated() {
// This code will position visible part of grid on selected item even when item is off visible area
var RadGrid1 = $find("<%= RadGrid1.ClientID %>");
var found = 0;
// look for selected row in master table
var row = RadGrid1.get_masterTableView().get_selectedItems()[0];
if (row) {
found = 1;
// alert('In Master');
}
else {
// alert("not found in parent");
for (var j = 0; j < RadGrid1.get_detailTables().length; j++) {
var childSelectedRows = RadGrid1.get_detailTables()[j].get_selectedItems();
}
var childSelIDs = new Array(childSelectedRows.length);
for (var i = 0; i < childSelectedRows.length; i++) {
var row = childSelectedRows[i];
if (row) {
found = 1;
// alert('In Child');
}
}
}
// alert('testing');
if (found == 1) {
alert('positining');
setTimeout(function() {
var rowElement = row.get_element();
//get the main table scrollArea HTML element
var scrollArea = RadGrid1.GridDataDiv;
//check if the selected row is below the viewable grid area
if ((rowElement.offsetTop - scrollArea.scrollTop) + rowElement.offsetHeight + 20 > scrollArea.offsetHeight) {
//scroll down to selected row
scrollArea.scrollTop = scrollArea.scrollTop + (rowElement.offsetTop - scrollArea.scrollTop) + (rowElement.offsetHeight - scrollArea.offsetHeight) + rowElement.offsetHeight;
}
//chck if the selected row is above the viewable grid area
else if ((rowElement.offsetTop - scrollArea.scrollTop) < 0) {
//scroll the selected row to the top
scrollArea.scrollTop = rowElement.offsetTop;
}
}, 200);
}
}