Dans ASP.NET MVC, une action prend les entrées de l’utilisateur sur les lignes et les colonnes, puis navigue vers l’action qui génère le nombre requirejs de lignes et de colonnes en fonction de l’entrée de l’utilisateur, comme indiqué ci-dessous: –
Vues:
@using (Html.BeginForm()) { @for (int k = 0; k < Model.Rows.Capacity; k++) { @for (int i = 0; i < Model.Columns.Capacity; i++) { @Html.TextBox("name" + k + i, null, new { @class = "form-control" }) } }
}
Et après être entré.
http://soffr.miximages.com/c%23/lxhOM.png
- Comment transmettre la valeur d’un élément HTML à une méthode code-behind C #?
- remplacer les guillemets intelligents MSWord dans le formulaire Web asp.net
- DataSource et DataSourceID sont définis sur ‘GridView1’. Supprimer une définition
- ne peut pas retourner la valeur de la méthode async en vue
- Comment accéder au chemin C: \ Program Files \… du PC client dans Asp.NET C #?
Dans l’action post, j’ai une collection de formulaires afin d’obtenir les données renseignées dans l’action post à l’aide d’une collection de formulaires. Dans l’action suivante, j’obtiens les valeurs de chaque champ d’entrée à l’aide d’une boucle foreach.
[HttpPost] public ActionResult Enter(FormCollection form) { for (int i = 0; i < form.Count; i++) { Debug.WriteLine(form[i]); } return View(); }
Je veux juste savoir comment obtenir toutes les valeurs d’une colonne dans l’action post et les obtenir colonne par colonne. Par défaut, les valeurs horizontales sont obtenues.
Merci. http://soffr.miximages.com/c%23/SBMvY.png
- La collection ASP NET MVC 4 est null sur post
- Comment puis-je obtenir l’élément sélectionné dans la liste déroulante et le soumettre à ma vue Détails?
- Comment obtenir des valeurs d’élément XML dans une chaîne à l’aide de Xdocument
- Transformer une en un avec Regex / C #
- Table non incrémentée après une insertion dans asp.net mvc
Créer des modèles de vue qui représentent ce que vous voulez afficher / éditer
public class TableVM { public TableVM() { Rows = new List(); } public TableVM(int rows, int columns) : this() { for(int i = 0; i < rows; i++) { Rows.Add(new RowVM(columns)); } } public List Headers { get; set; } // for columns headers public List Rows { get; set; } } public class RowVM { public RowVM() { Cells = new List(); } public RowVM(int columns) : this() { for(int i = 0; i < columns; i++) { Cells.Add(new CellVM()); } } public List Cells { get; set; } } public class CellVM { public ssortingng Value { get; set; } }
et dans la méthode GET, initialisez une nouvelle TableVM
et renvoyez-la à la vue
TableVM model = new TableVM(5, 5); // 5 x 5 grid model.Headers = new List{ "col 1", "col 2", "col 3", col 4", "col 5" }; return View(model);
Vue
@model TableVM .... @foreach(ssortingng header in Model.Headers) { @header } @for(int r = 0; r < Model.Rows.Count; r++) { for (int c = 0; c < Model.Rows[r].Cells.Count; c++) { @Html.TextBoxFor(m => m.Rows[r].Cells[c].Value } }
Puis changez votre méthode POST pour accepter le modèle
[HttpPost] public ActionResult Enter(TableVM model)
Vous pouvez maintenant accéder à chaque ligne / colonne à l’aide d’indexeurs, par exemple model.Rows[1].Cells[2].Value
renverra la valeur de la 3ème colonne de la deuxième ligne.
Le moyen le plus simple serait d’enregistrer le nombre de lignes et de colonnes avec les valeurs d’entrée:
@using (Html.BeginForm()) { @for (int k = 0; k < Model.Rows.Capacity; k++) { @for (int i = 0; i < Model.Columns.Capacity; i++) { @Html.TextBox("name" + k + i, null, new { @class = "form-control" }) } }
}
Une fois que vous en avez, vous pouvez les utiliser pour déterminer le nombre d’itérations à effectuer et les noms d’entrée à interroger:
[HttpPost] public ActionResult Enter(FormCollection form) { var data = new List>(); var rows = int.Parse(form["rows"]); var columns = int.Parse(form["columns"]); for (var r = 0; r < rows; r++) { var rowData = new List(); for (var c = 0; c < columns; c++) { rowData.Add(form[string.Format("name{0}{1}", r, c)]); } data.Add(rowData); } return View(data); }
to get value horizontally you have to put name atsortingbute in your view like Name Allocation Percentage Allocation @{ foreach (var item in Model.t1_List) { @item.Name } }
and then at the time of post or in action method you can get this as Dictionary _d_amt = new Dictionary(); Dictionary _d_per = new Dictionary(); foreach (var key in _frm.AllKeys) { if (key.ParseSsortingng().Contains("t1_txtamt-")) { decimal _val = _frm[key].ParseSsortingng().ParseDecimal(); decimal _id = key.Replace("t1_txtamt-", "").ParseSsortingng().ParseDecimal(); _d_amt.Add(_id, _val); } else if (key.ParseSsortingng().Contains("t1_txtper-")) { decimal _val = _frm[key].ParseSsortingng().ParseDecimal(); decimal _id = key.Replace("t1_txtper-", "").ParseSsortingng().ParseDecimal(); _d_per.Add(_id, _val); } } foreach (var item in _model.t1_List) { AllocationClass _litem = new AllocationClass(); _litem.BId = item.BId; _litem.Name = item.Name; _litem.AllocationPercentage = (from p in _d_per where p.Key == item.BId select p.Value).FirstOrDefault().ParseDecimal(); _litem.AllocationAmount = (from p in _d_amt where p.Key == item.BId select p.Value).FirstOrDefault().ParseDecimal(); _list.Add(_litem); }
- Afficher les valeurs sélectionnées de la liste en tant que libellé – valeurs multiples
- Comment puis-je ouvrir Excel dans un navigateur Web?
- Problèmes de déploiement de firebase database
- Calendrier complet / Récupération du stream JSON (modifié)
- Supprimer une ligne en double d’une table basée sur une colonne
- Comment mettre en évidence les résultats d’un texte dans un gridview?
- Guillemets simples et doubles dans la requête d’insertion Sql Server 2005
- Préserver la valeur de la zone de texte à l’aide de View State dans Asp.net?
- Impossible d’append un client de service pour un service net.tcp WCF
- Liaison de XML nested à CheckboxList