我正在使用FormView
并使用存储过程将其绑定到SqlDataSource
来编辑记录。问题是,在更新记录后,我需要调用另一个函数,我正在使用按钮的onClick
属性。
此函数必须使用FormView
中编辑的记录的ID将一些记录插入另一个表中。我知道如何在同一个存储过程中使用SCOPE_IDENTITY
,但这次我需要一些在代码隐藏中更容易实现的逻辑,但我不知道如何获取ID,所以任何线索会很棒的。
这是按钮:
<asp:Button ID="EditButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Edit" OnClick="setProcessProgress" />
以下是代码背后的精简版本:
protected void setProcessProgress(object sender, EventArgs e)
{
int ID_p;
ID_p = ; //TODO: Here I need to obtain the ID of the last edited record from the EditButton
setProgress(ID_p);
}
存储过程是一个简单的UPDATE
语句。
我正在考虑将参数传递给后面的代码,但不确定如何,可能是这样的OnClick="setProcessProgress(@id)"
答案 0 :(得分:1)
尝试这样,您需要将OnCommand="CommandEventHandler"
事件处理程序附加到您的按钮。查看更多信息Button.Command
<asp:Button ID="EditButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Edit"
CommandArgument="1"
OnCommand="CommandBtn_Click" />
以及获取ID的代码
protected void CommandBtn_Click(Object sender, CommandEventArgs e)
{ if (e.CommandName == "Update")
{
yourID =Convert.ToInt32(e.CommandArgument);
}
}
答案 1 :(得分:0)
您可以使用out参数进行更新存储过程。这将在
之后为您提供ID更新
然后您可以使用插入ID。