Используя простой HTML ванили и javascript
<input type='text' id='txtMyInputBox' />
<script language='javascript' type='text/javascript'>
function SetFocus()
{
// safety check, make sure its a post 1999 browser
if (!document.getElementById)
{
return;
}
var txtMyInputBoxElement = document.getElementById("txtMyInputBox");
if (txtMyInputBoxElement != null)
{
txtMyInputBoxElement.focus();
}
}
SetFocus();
</script>
Для тех, которые там используют .net платформу и asp.net 2.0 или выше, его тривиальное. При использовании более старых версий платформы необходимо было бы записать некоторый JavaScript, подобный вышеупомянутому.
В Вашем обработчике OnLoad (обычно page_load при использовании шаблона страницы запаса, предоставленного Visual Studio) можно использовать:
C#
protected void PageLoad(object sender, EventArgs e)
{
Page.SetFocus(txtMyInputBox);
}
VB.NET
Protected Sub PageLoad(sender as Object, e as EventArgs)
Page.SetFocus(txtMyInputBox)
End Sub
(* Примечание я удалил символ подчеркивания из имени функции, которое является обычно Page_Load с тех пор в блоке кода, который это отказалось представлять правильно! Я не видел в документации разметки, как заставить подчеркивания представлять незавершенный.)
Hope это помогает.
Я добился этого, выполнив следующие действия:
Сделайте внутренний командный объект доступным для проверки, поскольку он не создается, как обычный командный объект. Есть два способа сделать это: с помощью аннотации @ org.codehaus.groovy.grails.validation.Validateable
или с помощью параметра конфигурации grails grails.validateable. классы
Добавление настраиваемого валидатора для innerCommands в OuterCommand
static constraints = {
innerCommands(validator: {val, obj ->
// 'attributes.validation.failed' is the key for the message that will
// be shown if validation of innerCommands fails
return val.every { it.validate() } ?: ['attributes.validation.failed']
})
}
Я не думаю, что объекты домена в команде или вложенных командах проверяются по умолчанию, вам нужно будет написать валидатор , который зацикливается с помощью внутренних команд и проверяет их все.
static constraints = {
innerCommands(validator:{val,obj ->
//validate and merge errors from each innerCommand
})
}
Вероятно, вам придется обработать объект Errors и объединить все результаты вместе, но это не так уж сложно.