Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将焦点赋予控件,但滚动到其他控件_Asp.net - Fatal编程技术网

Asp.net 将焦点赋予控件,但滚动到其他控件

Asp.net 将焦点赋予控件,但滚动到其他控件,asp.net,Asp.net,回发后,我希望我的页面将焦点放在gridview的子控件上,但将页面滚动到其他部分。 在Page_Load或Page_prerender上调用的标准myGridView.Focus()插入 WebForm_AutoFocus('myGridViewClientID'); 在呈现的html中。 此功能还可将滚动条移动到所需位置 有什么建议吗 我的尝试:使用Asp.NET注入的某些函数: function FocusWithoutScroll(focusId) { var targetCo

回发后,我希望我的页面将焦点放在gridview的子控件上,但将页面滚动到其他部分。 在Page_Load或Page_prerender上调用的标准myGridView.Focus()插入

WebForm_AutoFocus('myGridViewClientID');
在呈现的html中。 此功能还可将滚动条移动到所需位置

有什么建议吗

我的尝试:使用Asp.NET注入的某些函数:

function FocusWithoutScroll(focusId) {
    var targetControl;
    if (__nonMSDOMBrowser) {
        targetControl = document.getElementById(focusId);
    }
    else {
        targetControl = document.all[focusId];
    }
    var focused = targetControl;
    if (targetControl && (!WebForm_CanFocus(targetControl))) {
        focused = WebForm_FindFirstFocusableChild(targetControl);
    }
    if (focused) {
        try {
            focused.focus();
        }
        catch (e) {
        }
    }
}
但是为了使用这段代码,我必须包含一些.axd资源文件:当您设置 someControl.Focus(); 在服务器端代码中。但这反过来又插入了 WebForm_自动对焦(“myGridViewClientID”)


将页面滚动到错误位置的方法有一种客户端方法,可以滚动页面直到元素可见。您可以发出服务器端命令:

ClientScript.RegisterStartupScript(this.GetType(), "MyScript","document.getElementById('SecondElementID').scrollIntoView();", true);
其中'SecondElementID'是要滚动到的元素的id


演示:此演示演示如何在一个元素上设置焦点并将页面滚动到另一个元素上

这会导致一些闪烁:页面首先滚动到WebForm_AutoFocus('myGridViewClientID')希望滚动的位置,然后移回所需位置。然后不要使用
myGridView.focus()
执行类似于
ClientScript.RegisterStartupScript的操作(this.GetType(),“MyScript1”,“document.getElementById('myGridViewClientID')。focus();”,true)相反-这将引起焦点,但不是自动聚焦gridview本身不能有焦点:ASP.net Javascript使用一个花哨的WebForm_FindFirstFocusableChild在网格中查找可聚焦的子对象,然后你可以自己做-找到有问题的元素并在自定义聚焦中使用它我走的路:我从ASP.net中提取了我的焦点而没有聚焦,跳过“滚动到控件”部分,但似乎我必须重写Asp.NET生成的许多代码。。。。我是一个javascript高手,我希望我能回收一些微软或一些专家写的好代码。。。