Aspx表格:
<asp:Table ID="viewV" runat="server">
<asp:TableRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
以下代码:
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);
}
我目前正在使用LINQ填充asp:table,这很好。
public IQueryable<tblV> GetV()
{
return (from getAllV in dc.tblV
where getAllV.deleted != 1
orderby getAllV.vName
select getAllV).DefaultIfEmpty();
}
我已经尝试了GridView / ListView / DetailsView,但似乎无法访问GetV,我只能访问实际的表。
我想在每行的末尾添加一个编辑/删除按钮,以便用户可以选择他们想要编辑/删除的行。
一旦用户选择了编辑/删除按钮,就应该访问另一个视图(一个用于编辑,一个用于添加 - 在同一个aspx文件中)。
例如:
Name Type
Example 1 Type 1 Edit Button Delete Button
Example 2 Type 1 Edit Button Delete Button
我希望能够为“示例1”选择“编辑”按钮。这应该是:
为什么我会生成多个编辑/删除按钮,以某种方式保存该行的唯一ID?
我认为会是这样的:
TableCell vEdit = new TableCell();
vEdit.Button = singleV.vID;
tr.Cells.Add(vEdit);
答案 0 :(得分:1)
如果您真的想要“硬编码”它,请使用ASP.NET MVC。否则,你真的应该使用某种数据绑定控制。
那就是说,如果你坚持这种方法,你可能会做这样的事情:
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);
然后,从事件处理程序的CommandEventArgs,您可以检索参数并相应地更改视图。