问题:在ASP .NET中将焦点设置为Web控件的最佳方式是什么?如何将焦点设置为ASP.NET中的Web控件
我可以做到,但它很丑。我有一个网页控制包裹在网页控制托管的网页控制。所以,如果你做了一个视图|在页面上的源代码就像WrapperControl_Control_TextBox。我已经尝试过抓取元素并将其设置为焦点的“已尝试和真正的”Javascript方法:document.getElementByID(“WrapperControl_Control_TextBox”).focus();并没有奏效。我不知道为什么。
我知道我可能会这样做: document.getElementById(“<%= TextBox.ClientID%>”).focus();我想也是。如果页面中有“<%%>”,则无法动态地将控件添加到标题,因为这会导致另一个完全单独的错误,因此无法正常工作。 GAH。
在“最底部”控件中,我试着设置焦点(Page_Load中的TextBox.Focus()),但这也不起作用。
无论如何,工作的方式是通过简单地采用页面的ControlsCollection,抓住我需要的控件,获取它的集合,抓住下一个较低的控件等等。
我只需要做这七次。所以我有八个foreach循环。
基本上,我的代码是这样的:
/////////////////////////////// //在页面 ///////////////////////////////
ControlCollection controls = Controls;
foreach(Control control in controls)
{
if (string.Equals(control.ID, "FormID", StringComparison.InvariantCultureIgnore))
{
ControlCollection nextControls = control.Controls;
foreach(Control nextControl in nextControls)
{
if (string.Equals(nextControl.ID, "DivICareAboutInTheForm", StringComparison.InvariantCultureIgnor))
{
ControlCollection nextNextControls = nextControl.Controls;
//:
//:
//Yes, it's that bad and so forth.
//:
//:
}
}
}
}
我们没有JQuery,但我会考虑添加它。谢谢。 – Dan7el 2010-04-07 14:01:00
我安装了JQuery并且使用脚本。有用!万分感谢! – Dan7el 2010-04-07 18:25:12