2

我有一个 TextBox 和一个 Button,我有一个很长的 GridView(我不想分页),所以我把它放在一个启用了垂直滚动条的 Div 中。

我只想在文本框中输入搜索字符串,如果单击按钮,它应该找到字符串匹配的行并设置其背景颜色,并且应该滚动到该行。

这应该在 Javascript 中完成。我可以做所有事情,但滚动到找到的行没有运气。

javascript函数如下所示

function NextClinic() {

            var gvClinics = document.getElementById("<%= gvClinics.ClientID %>");
            var FindText = document.getElementById("<%= txtClinicKeywords.ClientID %>").value;
            var oRows = gvClinics.rows;
            var rawDataRows = new Array();
            var cell;
            var hdnCounterNext = document.getElementById("<%= hdnCounterNext.ClientID %>").value;
            for (var i = hdnCounterNext; i < oRows.length; i++) {
                var cell = gvClinics.rows[i].cells[3];
                if (cell.innerHTML.indexOf(FindText) !== -1) {
                    alert("found at " + i);
                    document.getElementById("<%= hdnCounterNext.ClientID %>").value = i+1
                    return false;
                }
            }
        }

一个最好的建议是高度赞赏..

谢谢斯里。

4

2 回答 2

1

尝试获取点击的位置,然后使用 ScrollTo 选项将其移动到正确的位置。我认为 jquery 会帮助你。我认为有一些插件可以这样做,这里是其中之一:http ://demos.flesler.com/jquery/scrollTo/ 。如果可以确定元素的位置,即使您也可以使用http://api.jquery.com/scrollTop/ 。

于 2013-03-26T04:44:25.733 回答
1

使用scrollIntoView方法

function NextClinic() {

            var gvClinics = document.getElementById("<%= gvClinics.ClientID %>");
            var FindText = document.getElementById("<%= txtClinicKeywords.ClientID %>").value;
            var oRows = gvClinics.rows;
            var rawDataRows = new Array();
            var cell;
            var hdnCounterNext = document.getElementById("<%= hdnCounterNext.ClientID %>").value;
            for (var i = hdnCounterNext; i < oRows.length; i++) {
                var cell = gvClinics.rows[i].cells[3];
                if (cell.innerHTML.indexOf(FindText) !== -1) {
                    alert("found at " + i);
                    cell.scrollIntoView();
                    document.getElementById("<%= hdnCounterNext.ClientID %>").value = i+1
                    return false;
                }
            }
        }

例子

于 2013-03-26T04:45:19.170 回答