2011-11-18 3 views
2

Im manuellement Création de la table à l'aide du rasoir intégré Fonction GETHtml.ASP.NET MVC3: Razor GetHTML Table mise en page personnalisée

@table.GetHtml(
    columns: table.Columns(
     table.Column("Account"), 
     table.Column("Due"), 
     table.Column("Topic"), 
     table.Column("Type"), 
     table.Column("Completed?", format: @<input id="Complete" name="Complete" type="checkbox" onclick="/Tasks/Complete?ID=700" />) 
     ) 
) 

Ce que je veux, c'est une manière de cliquer sur une case à cocher ou un bouton pour activer le contrôleur. il n'accepte pas la case à cocher Dynamic. La case à cocher html ne fait rien non plus.

Répondre

1

J'ai une solution de travail sans utiliser les formulaires, la colonne sera définie à l'aide du code ci-dessous:

table.Column("Completed?", format: @<input type="checkbox" onclick="location.href='@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })'" /> 

Je pense que possible que ayant la propriété de nom l'amène à l'afficher comme un paramètre, plutôt que de le traiter comme un soumettre. Sinon, il doit avoir été l'événement onclick. J'ai utilisé location.href, puis l'ai défini à l'aide de la syntaxe du rasoir, et j'ai inclus l'identifiant en tant que propriété.

0

Deux façons d'exécuter un message sur le contrôleur de votre choix. Enveloppez votre table avec le formulaire que vous souhaitez soumettre ou ajoutez quelques gestionnaires AJAX pour publier les données que vous désirez. Une forme simple pourrait être accompli comme:

<% using (Html.BeginForm<SomeController>(x=> x.SomeAction()) 
{ 

@table.GetHtml(
    columns: table.Columns(
     table.Column("Account"), 
     table.Column("Due"), 
     table.Column("Topic"), 
     table.Column("Type"), 
     table.Column("Completed?", format: @<input id="Complete" name="Complete" type="submit" " />) 
     ) 
) 

} 
+0

Finalement, j'ai ajouté un nouveau formulaire entièrement nouveau dans la section format. Ce qui fait ce que je veux. Toujours à la recherche d'une solution en ligne où les formulaires ne doivent pas nécessairement être utilisés. N'a pas tout à fait obtenu votre '(x => x.SomeAction())', ni compris où ID est défini. – Doomsknight