我在asp.net中创建Web应用程序。我有5个文本框,它们是asp控件。我希望得到哪个文本框关注那个时间,然后当我按“添加”按钮时,“hello”文本必须添加到特定文本框中,在按下“添加”按钮之前将其聚焦。
我需要Asp.net(带有C#代码)才能进入下一步
答案 0 :(得分:0)
由于最后一次焦点位于“添加”按钮,因此您需要在单击“按钮”之前“记住”TextBox。
尝试使用onfocus()事件。
<!-- Add a HiddenField control to "remember" the id of a TextBox -->
<asp:HiddenField ID="HiddenField1" runat="server" />
<!-- Assign current focus to that hidden field -->
<asp:TextBox onfocus="document.getElementById('HiddenField1').value=this.id" ...>
<asp:TextBox onfocus="document.getElementById('HiddenField1').value=this.id" ...>
如果可行,您将能够在代码隐藏中获得值
string c = HiddenField1.Value;
if (!string.IsNullOrEmpty(c))
if (c == "TextBox1")
TextBox1.Text = "hi there";
注意:取决于您可能需要调用ClientID的环境(例如getElementById('<%=HiddenField1.ClientID%>')
<强>更新强>
正如我上面告诉你的那样,你可能需要使用HiddenField1.ClientID来查找HiddenField控件。当您的来源显示为
时<input type="hidden" name="ctl00$MainContent$HiddenField1" id="MainContent_HiddenField1" />
<input name="ctl00$MainContent$TextBox1" type="text" id="MainContent_TextBox1"
onfocus="document.getElementById('HiddenField1').value=this.id" />
<input name="ctl00$MainContent$TextBox2" type="text" id="MainContent_TextBox2"
onfocus="document.getElementById('HiddenField1').value=this.id" />
<input type="submit" name="ctl00$MainContent$Button1" value="Button" id="MainContent_Button1" />
这意味着您使用MasterPage和asp.net将控件的ID更改为MainContent_HiddenField1
。因此,当您使用document.getElementById('HiddenField1')
时,它将无法找到此类控件,因为它的ID不同。您需要使用
document.getElementById('MainContent_Button1').value=this.id
可以使用,但如果删除母版页或将文本框移动到其他容器
,则可能需要更改或使用
document.getElementById('<%=HiddenField1.ClientID%>').value=this.id
会自动注入正确的id(推荐的asp.net方式)