删除具有多个主键的数据列表行

时间:2020-03-05 18:41:24  来源:igfitidea点击:

我有一个带有OnDeleteCommand =" Delete_Command"的数据列表。

我想要删除具有多个主键的记录,但是我不知道如何从Delete_Command事件访问它。

如果我使用DataKeyField,则只能使用一个键。
有任何解决方法吗?

解决方案

回答

我们可以访问所有键:

gridView.DataKeys[rowNum][dataKeyName]

其中rowNum是来自gridView_RowDeleting事件处理程序的e.RowIndex,而dataKeyName是要获取的键:

<asp:GridView ID="gridView" runat="server" DataKeyNames="userid, id1, id2, id3" OnRowDeleting="gridView_RowDeleting">

protected void gridView_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    gridView.DataKeys[e.RowIndex]["userid"]...
    gridView.DataKeys[e.RowIndex]["id1"]...
    gridView.DataKeys[e.RowIndex]["id2"]...
    gridView.DataKeys[e.RowIndex]["id3"]...
}

回答

哦,对不起,我错过了。

AFAIK默认情况下没有这种可能性。也许我们可以从主键创建组合键,例如

Key1UnderscoreKey2UnderscoreKey3

并在事件处理程序中将其拆分。因此,这是DataList的DIY多键处理程序:-)

编辑:下划线在格式化过程中丢失了,它替换为斜体文本。因此,请使用真实的下划线代替"下划线"一词