Créer des boutons Supprimer / Modifier pour plusieurs enregistrements de LINQ en utilisant la valeur cachée?
-
18-09-2019 - |
Question
Aspx forme:
<asp:Table ID="viewV" runat="server">
<asp:TableRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
code ci-dessous:
vRepository getV = new vRepository();
var viewAllV = getV.GetV();
foreach (tblV singleV in viewAllV)
{
TableRow tr = new TableRow();
// Create four new cells for each row within the database
TableCell vName = new TableCell();
TableCell vType = new TableCell();
// Attached values to each of these cells
vName.Text = singleV.vName;
vType.Text = singleV.tblVType.vName;
// Add the cells to the table
tr.Cells.Add(vName);
tr.Cells.Add(vType);
// Add the row to the table
viewV.Rows.Add(tr);
}
Je peuplant actuellement asp:. Table en utilisant LINQ, ce qui fonctionne bien
public IQueryable<tblV> GetV()
{
return (from getAllV in dc.tblV
where getAllV.deleted != 1
orderby getAllV.vName
select getAllV).DefaultIfEmpty();
}
J'ai essayé le GridView / ListView / DetailsView mais ne peut pas sembler accéder au GetV, je ne peux accéder à la table réelle.
Je veux ajouter un modifier / supprimer le bouton à la fin de chaque ligne, de sorte que l'utilisateur peut sélectionner la ligne qu'ils souhaitent modifier / supprimer.
Une fois que l'utilisateur a sélectionné soit le bouton modifier / supprimer, cela devrait alors accéder à un point de vue différent (un pour modifier, pour un add - dans le même fichier ASPX).
Par exemple:
Name Type
Example 1 Type 1 Edit Button Delete Button
Example 2 Type 1 Edit Button Delete Button
Je veux être en mesure de sélectionner le bouton Edit pour « Exemple 1 ». Cela devrait alors:
- Aller à la « vue modifier »,
- Auto remplir les deux champs de texte avec les informations correctes,
- ligne de mise à jour (dans les bases de données) avec de nouvelles informations en utilisant ID unique (PK).
Comment je produis modifier suis venu plusieurs / supprimer des boutons qui détiennent en quelque sorte l'ID unique pour cette ligne?
Je pensais que ce serait quelque chose comme ceci:
TableCell vEdit = new TableCell();
vEdit.Button = singleV.vID;
tr.Cells.Add(vEdit);
La solution
Si vous voulez vraiment « coder en dur », l'utiliser ASP.NET MVC. Dans le cas contraire, vous devriez vraiment utiliser une sorte de contrôle lié aux données.
Cela dit, si vous insistez sur cette approche, vous pouvez probablement faire quelque chose comme ceci:
Button editButton = new Button();
editButton.Text = "Edit";
editButton.CommandArgument = singleV.vID.ToString();
editButton.CommandName = "Edit";
editButton.OnCommand += new CommandEventHandler(EditButton_Command);
TableCell vEdit = new TableCell();
vEdit.Controls.Add(editButton);
tr.Cells.Add(vEdit);
Ensuite, à partir de gestionnaire CommandEventArgs vous pouvez récupérer l'argument et changer votre point de vue en conséquence.