IE中控制焦点(asp.net)
  TnD0WQEygW8e 2023年11月17日 45 0

使用母版页,Ajax UpdatePanel包含的下拉框,点击下拉框PostBack之后focus不奏效,第二次点击下拉框PostBack之后focus奏效????

JS

function resetFocus(id){   
          var obj=document.getElementById(id);    
          if(obj) obj.focus();    
      }

C#

ScriptManager.RegisterStartupScript(this, this.GetType(), "resetFocusJS", "resetFocus(\"" + ddlRegion.ClientID + "\");", true);

------------------------------

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TESTPAGE.master.cs" Inherits="TESTPAGE" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" >    
<head runat="server">    
    <title>无标题页</title>    
        <script language="javascript" type="text/javascript">     
   function resetFocus(id){    
        var obj=document.getElementById(id);    
        if(obj) obj.focus();    
          //document.getElementById(id).select();    
      }     
    </script>    
</head>    
<body>    
    <form id="form1" runat="server">    
      <asp:ScriptManager ID="ScriptManager1" runat="server">    
        </asp:ScriptManager>    
    <div>    
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">    
        </asp:contentplaceholder>    
    </div>    
    </form>    
</body>    
</html>

------------------------------

<%@ Page Language="C#" MasterPageFile="~/TESTPAGE.master" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" Title="Untitled Page" %>   
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">    
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">    
        <ContentTemplate>    
   Region:    
                <asp:DropDownList runat="server" ID="ddlRegion" DataValueField="Region_Id" DataTextField="Name"    
                    AutoPostBack="true" OnSelectedIndexChanged="ddlRegion_SelectedIndexChanged">    
                    <asp:ListItem>1</asp:ListItem>    
                    <asp:ListItem>2</asp:ListItem>    
                </asp:DropDownList>    
        </ContentTemplate>    
    </asp:UpdatePanel>    
</asp:Content>

------------------------------

using System;   
using System.Data;    
using System.Configuration;    
using System.Collections;    
using System.Web;    
using System.Web.Security;    
using System.Web.UI;    
using System.Web.UI.WebControls;    
using System.Web.UI.WebControls.WebParts;    
using System.Web.UI.HtmlControls; public partial class test2 : System.Web.UI.Page   
{    
    protected void Page_Load(object sender, EventArgs e)    
    {     } 
    protected void ddlRegion_SelectedIndexChanged(object sender, EventArgs e)   
    {    
        ScriptManager.RegisterStartupScript(this, this.GetType(), "ResetFilter", "resetFocus(\"" + ddlRegion.ClientID + "\"); ", true);     }   
}

------------------------------

Solution:

ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "fuck", "setTimeout(\"document.all('ctl00$ContentPlaceHolder1$ctl01$Jbyj').focus();\",100);", true);

注:Firefox不需要额外控制焦点,自动保留焦点在最后操作的控件上。

 

http://blog.sina.com.cn/s/blog_4473b2d10100arg5.html




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月17日 0

暂无评论

推荐阅读
TnD0WQEygW8e