2011-07-13 27 views
12

¿Cómo puedo usar la propiedad Orden de tabulación para la siguiente código:orden de tabulación en ASP.NET MVC 3 Ayudantes

<td> 
    @Html.EditorFor(model => model.Cost)     
</td> 

He intentado esto:

<td tabindex=1> 
    @Html.EditorFor(model => model.Cost)     
</td> 

alguna sugerencia?

+3

La última vez que SO ha visto @AbdullahSaqib fue 5 días después de que se hizo esta pregunta en 2011 –

Respuesta

13

También puede especificar el mismo atributo html en el propio asistente de la siguiente manera.

@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 }) 
+2

Esto no funciona en 'EditorFor', un segundo parámetro en Editor Para el tipo de objeto se usa para construir View Data no agrega atributos HTML según la documentación: http://msdn.microsoft.com/en-us/library/ff406462.aspx –

+0

No puede especificar parámetros adicionales en EditorFor. –

+1

impresionante que la única respuesta con votos ascendentes es incorrecta. –

0

Desafortunadamente @ Html.EditorFor método no ofrece la posibilidad de añadir atributos HTML. Puede agregarlos a través de una llamada a un método más específico. En el caso anterior que haría uso -

@Html.TextBoxFor(model => model.Cost, new { tabindex = 1 })

+3

No tiene que alejarse del Editor para. Él podría fácilmente crear una plantilla de editor. –

11

Como contraste a la respuesta correcta de @ Stuy1974, si no quiere dejar la solución EditorFor, vas a tener que cablear su propio Editor Template.

@ModelType SomeApp.ViewModels.SomeNiftyViewModel 

// be sure to include the TabIndex info in the ViewModel 
@Html.TextBoxFor(model => model.Cost, new { tabindex = model.TabIndex }) 

También puede utilizar el parámetro ViewData ya ha pasado a la plantilla editor directamente en lugar de añadir el índice de tabulación para el modelo:

// In the main view 
@Html.EditorFor(model => model.Cost, new { TabIndex = 3 }) 

// In the editor template 
@{ int tabIndex = (ViewData["TabIndex"] as int?) ?? 0; } 
@Html.TextBoxFor(model => model, new { tabindex = tabIndex }) 
+1

Gracias por la idea, funcionó a la perfección. –

1

Basta con hacer esto

@Html.EditorFor(model => model.Cost, new { htmlAttributes = new { tabindex = 34 } }) 
1

Otra opción , lo que le permite conservar el Editor para, es establecer el índice de pestañas en javascript después de que la página cargó algo como:

var myEditorFor = document.getElementById("MyEditorForId"); 

if (myEditorFor != null) { 
    myEditorFor.setAttribute("tabindex","18") 
}