2009-12-19 3 views
0

i code mis à jour et c'est la solution corect problèmepublierons tout vérifié chekbox

[AcceptVerbs(HttpVerbs.Post)]   
    public ActionResult Edit(int[] rb, int id) 
    { 
     List<nastava_prisustvo> nastava = new List<nastava_prisustvo>(); 

     string poruka = ""; 
     for (int i = 1; i <=rb.Length; i++) 
     { 
      string name = "chk" + i; 
      string selID = Request.Form[name]; 

      if (selID == "on") 
      { 
       //poruka = poruka + "Polje sa rednim brojem "+ i +" je chekirano\n"; 

       nastava.Add(new nastava_prisustvo 
       { 
       br_indexa = int.Parse(Request.Form["id_stud"+i]), 
       id_predmet = id 
       }); 
      } 
     } 
     // ViewData["Message"] = poruka; 
     return View("show", nastava); 
    } 

Vue:

<table class="data-table">   
    <tr> 
     <th> 
      Redni br. 
     </th> 
     <th> 
      Br. Indexa 
     </th> 
     <th> 
      Prezime 
     </th> 
     <th> 
      Ime 
     </th> 
     <th> 
      <input id="check_all" type="checkbox" onclick="function" /> 
     </th> 
    </tr> 

<% int rb = 1;%> 
<% foreach (var item in Model) 
    { %> 

    <tr> 
    <td> 
      <input readonly="readonly" class="input-box" id="rb" type="text" name="rb" value="<%= Html.Encode(rb)%>" /> 
     </td> 

     <td> 

      <input readonly="readonly" class="input-box" id="id_stud" type="text" name="id_stud" value="<%= Html.Encode(item.id_stud)%>" /> 

     </td> 
     <td> 
      <%= Html.Encode(item.prezime)%> 
     </td> 
     <td> 
      <%= Html.Encode(item.ime)%> 
     </td> 
     <td> 
      <input id="check" name="chk<%= Html.Encode(rb)%>" type="checkbox" /> 
     </td> 
    </tr> 

<% rb = rb + 1;%> 
<% } %> 

</table> 
+0

Ci-dessus est la bonne solution – Ognjen

Répondre

0

Voici un exemple montre comment passer la valeur de case à cocher au contrôleur.

Vue:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server"> 
    Home Page 
</asp:Content> 

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2><%= Html.Encode(ViewData["Message"]) %></h2> 
    <p> 
     To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>. 
     <form action="/home/index" method="post"> 
     <input type="checkbox" name="cb" value="value1" /> 
     <input type="checkbox" name="cb" value="value2" /> 
     <input type="submit" /> 
     </form> 
    </p> 
</asp:Content> 

Controller:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Index(string cb) 
    { 
     ViewData["Message"] = cb; 

     return View(); 
    } 

Cet exemple montre comment recevoir par tableau.

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Index(string[] cb) 
    { 
     string result = ""; 
     foreach (string value in cb) 
      result += value.ToString() + " "; 
     ViewData["Message"] = result; 

     return View(); 
    } 


    <form action="/home/index" method="post"> 
    <input type="checkbox" name="cb" value="v1" /> 
    <input type="checkbox" name="cb" value="v2" /> 
    <input type="checkbox" name="cb" value="v3" /> 
    <input type="checkbox" name="cb" value="v4" /> 
    <input type="submit" /> 
    </form> 
+0

Dans la présentation de la page Je veux voir seulement checkbox – Ognjen

+0

On dirait que cela fonctionnerait bien pour une radio, mais une case à cocher peut obtenir plusieurs valeurs postées. Vous devrez peut-être le recevoir sous la forme d'un tableau du type attendu. – tvanfosson

+0

Par défaut, seule la case à cocher "On" sera affichée sur le serveur. – Raymond

0

si vous avez une liste de cases à cocher et que vous voulez passer ceux vérifiés au contrôleur, tout ce que vous devez faire est la suivante:

nom de chaque case à cocher dans la vue « articles »

contrôleur d'action:

public ActionResult(UpdateObject updateobject) 
{ 
     string[] list = updateobject.items; 
} 

définition de l'objet de mise à jour:

public class UpdateObject 
{ 
     public string[] items { get; set; } 
} 
+0

Je ne comprends pas ce que je devrais faire avec ce code – Ognjen

+0

Je vous montrais juste que vous pouvez créer un tas de cases à cocher dans une vue et leur donner le même nom et lorsque vous postez votre formulaire, vous pouvez avoir un tableau de la case cochée ceux qui sont passés dans l'action de votre contrôleur – leora

Questions connexes