代码之家  ›  专栏  ›  技术社区  ›  Eton B.

在ASP.NET GridView中,DataKeyNames将作为不需要的更新参数出现

  •  2
  • Eton B.  · 技术社区  · 14 年前

    <asp:GridView ID="grvReport" runat="server" DataSourceID="odsReport" 
                    AutoGenerateColumns="False" DataKeyNames="EntryDate,EmployeeNumber">
    

    然后定义数据源的更新参数:

    <UpdateParameters>                                
                    <asp:Parameter Name="ID" Type="Int32" />
                    <asp:Parameter Name="IsJustified" Type="Boolean" />
                    <asp:Parameter Name="Comment" Type="String" />                
                    <asp:Parameter Name="LastEditor" Type="String" />     
     </UpdateParameters>
    

    找不到非泛型方法 是合理的,评论,最后编辑, 入职日期, 雇员人数。

    我可以避免DataKey下的字段作为方法的参数出现吗?

    注意:我可以通过简单地修改方法的参数并添加来自Gridview的额外值来解决这个问题,而不需要对它们做任何操作,但是有一种方法可以避免这些值甚至被发送出去,这是很好的。

    提前谢谢你,
    埃托恩。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Pieter van Ginkel    14 年前

    我认为没有解决办法。微软意识到了这个问题,并说它将在下一个版本中得到解决。查看此处了解更多信息: https://connect.microsoft.com/VisualStudio/feedback/details/260674/generated-default-update-method-in-datatableadapter-in-a-typed-dataset-shouuld-not-update-primary-key .

        2
  •  3
  •   Ken Parker    13 年前

    可以使用ObjectDataSource更新事件删除它们

     void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
     {
        e.InputParameters.Remove("Type_ID");
        e.InputParameters.Remove("Document_ID");
        e.InputParameters.Remove("State_ID");
     }
    

    我使用数据键进行查找,但在更新过程中不需要它们。

        3
  •  0
  •   James King    14 年前