Я пытаюсь заморозить свой заголовок gridview за последние 2 дня и получил эту ссылку и многие другие ссылки, предоставленные мне на Stackoverflow, а также от поиска в Google.Это работало нормально, когда я использовал его в IE 6,7 и в режиме совместимости в IE8, но в обычном режиме этот код не работает.
В этой строке выдается ошибка.Я хочу реализовать эту функциональность.
trs[x].style.setExpression("top", "this.parentElement.parentElement.parentElement.scrollTop + 'px'");
При чтении комментариев я узнал, что scrollableTable.js использует метод setExpression, который в IE8 устарел.
Раньше я понятия не имел о проблеме.Я надеюсь, что будет какая-то альтернатива методу setExpression.
Как заменить метод setExpression другой альтернативой в этом коде
функция ScrollableTable (tableEl, tableHeight, tableWidth) {
this.initIEengine = function() {
this.containerEl.style.overflowY = 'auto';
if (this.tableEl.parentElement.clientHeight - this.tableEl.offsetHeight < 0) {
this.tableEl.style.width = this.newWidth - this.scrollWidth + 'px';
} else {
this.containerEl.style.overflowY = 'hidden';
this.tableEl.style.width = this.newWidth + 'px';
}
if (this.thead) {
var trs = this.thead.getElementsByTagName('tr');
for (x = 0; x < trs.length; x++) {
trs[x].style.position = 'relative';
trs[x].style.setExpression("top", "this.parentElement.parentElement.parentElement.scrollTop + 'px'");
}
}
if (this.tfoot) {
var trs = this.tfoot.getElementsByTagName('tr');
for (x = 0; x < trs.length; x++) {
trs[x].style.position = 'relative';
trs[x].style.setExpression("bottom", "(this.parentElement.parentElement.offsetHeight - this.parentElement.parentElement.parentElement.clientHeight - this.parentElement.parentElement.parentElement.scrollTop) + 'px'");
}
}
eval("window.attachEvent('onresize', function () { document.getElementById('" + this.tableEl.id + "').style.visibility = 'hidden'; document.getElementById('" + this.tableEl.id + "').style.visibility = 'visible'; } )");
};