Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用隐藏值为linq中的多条记录创建删除/编辑按钮?_C#_Linq_Edit_Delete Row - Fatal编程技术网

C# 使用隐藏值为linq中的多条记录创建删除/编辑按钮?

C# 使用隐藏值为linq中的多条记录创建删除/编辑按钮?,c#,linq,edit,delete-row,C#,Linq,Edit,Delete Row,Aspx表格: <asp:Table ID="viewV" runat="server"> <asp:TableRow> <asp:TableHeaderCell>Name</asp:TableHeaderCell> <asp:TableHeaderCell>Type</asp:TableHeaderCell> </asp:TableRow> </asp:Table&g

Aspx表格:

<asp:Table ID="viewV" runat="server">
  <asp:TableRow>
    <asp:TableHeaderCell>Name</asp:TableHeaderCell>
    <asp:TableHeaderCell>Type</asp:TableHeaderCell>
  </asp:TableRow>       
</asp:Table>
我目前正在使用LINQ填充一个asp:表,这很好

public IQueryable<tblV> GetV()
{
    return (from getAllV in dc.tblV
            where getAllV.deleted != 1
            orderby getAllV.vName
            select getAllV).DefaultIfEmpty();
}
我希望能够选择“示例1”的编辑按钮。这应该是:

  • 带我到“编辑视图”
  • 使用正确的信息自动填充两个文本字段
  • 使用唯一ID(PK)使用新信息更新行(数据库内)
  • 我怎么会产生多个编辑/删除按钮,它们以某种方式保存该行的唯一ID

    我以为会是这样的:

    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);
    
    TableCell-vEdit=new TableCell();
    vEdit.Button=singleV.vID;
    tr.Cells.Add(vEdit);
    
    如果您真的想“硬编码”,请使用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);
    
    然后,您可以从事件处理程序中检索参数并相应地更改视图。

    如果您确实想“硬编码”它,请使用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);
    

    然后,您可以从事件处理程序中检索参数并相应地更改视图。

    您不想使用gridview或listview的任何特定原因?他们真的会为你简化很多。我想学习如何“硬编码”,而不是像出现问题一样拖拽。我想理解代码。另外,我需要“编辑/删除”按钮来转到另一个视图,而不是创建一个内联“编辑”模式。您可能应该以“正确”的方式而不是“艰难”的方式来执行此操作。我们有足够的时间处理其他地方的复杂问题。尝试GridView/DetailView以获得非内联编辑模式。在最坏的情况下,至少使用一个转发器而不是一个表。您有什么特别的原因不想使用gridview或listview吗?他们真的会为你简化很多。我想学习如何“硬编码”,而不是像出现问题一样拖拽。我想理解代码。另外,我需要“编辑/删除”按钮来转到另一个视图,而不是创建一个内联“编辑”模式。您可能应该以“正确”的方式而不是“艰难”的方式来执行此操作。我们有足够的时间处理其他地方的复杂问题。尝试GridView/DetailView以获得非内联编辑模式。在最坏的情况下,至少使用一个中继器而不是一个表。很抱歉,如果我没有说清楚,我确实想要最好的解决方案,但是我正在努力调整数据绑定控件以满足我的要求。我需要访问GetV(当前位于类中)。在GetV中,我使用LINQ。当我尝试附加数据源时,它只允许我访问实际的表,而不允许访问GetV。我还希望“编辑/删除”按钮转到另一个视图,同时仍包含unquie ID。如果视图是最佳解决方案,有人能推荐任何提供有关我的要求的分步指南的文档吗?如果我不清楚,我很抱歉,我确实想要最佳解决方案,然而,我正在努力调整数据绑定控件以满足我的需求。我需要访问GetV(当前位于类中)。在GetV中,我使用LINQ。当我尝试附加数据源时,它只允许我访问实际的表,而不允许访问GetV。我还希望“编辑/删除”按钮转到另一个视图,同时仍包含unquie ID。如果视图是最佳解决方案,是否有人可以推荐任何提供有关我的要求的分步指南的文档?