下面是化简后的一个模型,在UpdatePanel中有一TextBox\Button\Label,单击Button,则在label中显示TextBox中的内容,代码如下:
protected void Button1_Click1(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
TextBox1.Text="";
TextBox1.Focus();
}目前要在文本框中输入中文,需要保持中文输入状态,操作也正常,但问题是:单击Button完成显示后,虽然文本框有焦点,但却不能输入中文,必须在页面其他地方单击一下(使文本框失去焦点),再单击文本框,使其重新获得焦点,输入法才能继续输入。显然操作不太友好。如何能不老单鼠标就能直接进行汉字的输入呢?模型很简单,希望能测试后再回答,谢谢!!!
protected void Button1_Click1(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
TextBox1.Text="";
TextBox1.Focus();
}目前要在文本框中输入中文,需要保持中文输入状态,操作也正常,但问题是:单击Button完成显示后,虽然文本框有焦点,但却不能输入中文,必须在页面其他地方单击一下(使文本框失去焦点),再单击文本框,使其重新获得焦点,输入法才能继续输入。显然操作不太友好。如何能不老单鼠标就能直接进行汉字的输入呢?模型很简单,希望能测试后再回答,谢谢!!!
应该是TextBox1.Focus();这句话的原因。。
ScriptManager.RegisterStartupScript去实现得到焦点看看。。不用Focus();
http://topic.csdn.net/u/20090214/03/82acd339-73c8-4e32-8f54-d5ee65e2969f.html
终于弄出来了汗都出来了。。 protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "", "document.getElementById('" + TextBox1.ClientID + "').focus();", true);
} protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
TextBox1.Text = "";
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "", "document.getElementById('" + TextBox1.ClientID + "').focus();", true);
}
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div> </form>
</body>
</html>[code=C#]
public partial class TextBoxSendMessage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
TextBox1.Text = "";
TextBox1.Focus();//加上焦点自动回到TextBox
}
}[/code]
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div> </form>
</body>
</html>
public partial class TextBoxSendMessage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text;
TextBox1.Text = "";
TextBox1.Focus();//加上焦点自动回到TextBox
}
}
上午给你的方法还是点问题下午仔细试了一下。上面方法在有母版页的情况下可以使用但还是不周全。重新想了个方法。。写了篇BLOGLZ再试试