2011-10-20 8 views
7

Aquí está mi código jQuery con la maquinilla de afeitar:¿Hay alguna forma de usar el código jquery dentro de la afeitadora?

$("#GroupC_grup_name").attr('value', '@foreach (SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Text }') 
    $("#GroupC_id").attr('value', '@foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Value }') 

quiero fusionar estos juntos, como en el que no quiero llamar a ViewData["Gruplar"] dos veces.

¿Puedo hacer algo como esto?

@foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){ 
    @:$("#GroupC_grup_name").attr('value', '@sel.Text'); 
    @:$("#GroupC_id").attr('value', '@sel.Value'); 
} 

He intentado todo lo que puedo pensar, pero todavía no puedo lograr lo que quiero.

+0

Su código es un poco confuso ya que sus valores en ambos ejemplos serán extraños. En el primer ejemplo, solo está generando todos los valores de la lista en el atributo de elemento 'valor'; en el segundo ejemplo, está configurando todos los valores uno a la vez, pero siempre será el último valor establecido. ¿Qué es lo que estás tratando de lograr exactamente? – Buildstarted

+0

@BuildStarted esta lista de selección solo contiene 1 elemento ... por lo que no se sobreescribirá. Por favor lea el tema cuidadosamente. Quiero aprender si puedo poner algún código jquery dentro de '" ese es mi problema a resolver. Esa lista de selección solo es un ejemplo de uso. –

Respuesta

9

He leído cuidadosamente y entender lo que quiere hacer. Sin embargo, tu ejemplo es lo que es confuso. (parece que todos respondieron)

Lo que has hecho en el segundo ejemplo debería funcionar bien, podrías ajustar tu jQuery en un elemento <text></text> si eso también ayuda. Si sólo hay siempre un valor sólo podría

<script type='text/javascript'> 
    @{ var x = ((SelectList)ViewData["Gruplar"]).First(); } 
    $("#GroupC_grup_name").attr('value', '@x.Text'); 
    $("#GroupC_id").attr('value', '@x.Value'); 
</script> 

Hay un gran número de maneras en que podría lograr la maquinilla de afeitar dentro de jQuery. Es básicamente lo mismo que una afeitadora con html.

Si desea ejecutar navaja en el lado del cliente, entonces eso no va a suceder. Razor se ejecuta antes de que se envíe al cliente.

5

El código sugieres debería funcionar, el código siguiente se utiliza una matriz de cadenas en lugar de un SelectList pero el principio debe ser el mismo, el código de abajo ha sido probado y funciona -

@{String[] testarr = {"hello","bye"};} 
@foreach(String sel in testarr){ 
@:$("#GroupC_grup_name").attr('value', '@sel'); 
@:$("#GroupC_id").attr('value', '@sel'); 
} 
+0

No creo que haya querido sobrescribir 'value'attribute para' # GroupC_grup_name' X cantidad de veces ... – jgauffin

+0

¡ante todo no sobrescribiré con la acción que voy a hacer! También mi lista de selección solo para cargar valores de datos y campos de texto por separado, es una lista ** sí ** pero solo contiene ** 1 ** elemento. Entonces, lo que estaba intentando es inyectar un 'código jquery' dentro de' razor' y gracias '@ ipr101' está trabajando con' string array' con algo de sobreescritura como '@jgauffin' ¡dijo que sobrescribe! así que debería ser como ('@ sel.Value' para' GroupC_id' y '@ sel.Text' para' GroupC_grup_name') también si puede mostrar una forma de hacerlo con un proveedor de datos como 'ViewData [" Gruplar "] 'Me gustaría saberlo. –

1

Según entiendo ¿Desea actualizar los elementos cuando se selecciona un elemento SELECCIONAR?

Crear una lista de selección regular y agregar el siguiente código de jQuery:

<script type="text/javascript"> 
$(function() { 
    $('#selectListId').change(function() { 
     $selectedItem = $("option:selected", this); 
     $("#GroupC_grup_name").val(selectedItem.html()); 
     $("#GroupC_id").val(selectedItem.val()); 
    }); 

}); 
</script> 
+0

¡El código de ur es digno pero este no es mi problema! umm creo que estoy siendo malentendido. lista de selección no tiene nada que hacer más que obtener mis valores aquí ... estoy tratando de agregar el código jquery dentro de la máquina de afeitar ¿cuál es mi problema? ¿Hay alguna manera de hacerlo?no es importante si uso una lista de selección o un modelo para recuperar algunos datos. –

+0

Es muy importante saber qué desea hacer ya que el código Razor se ejecuta en el servidor web y el código jQuery se ejecuta en el navegador web. no pueden trabajar juntos. Razor solo puede generar código jQuery (que luego se ejecutará en el navegador) – jgauffin

Cuestiones relacionadas