1

我正在使用 aFormView并将其绑定到 aSqlDataSource使用存储过程来编辑记录。问题是在更新记录后我需要调用另一个函数,我正在使用onClick按钮的属性。

此函数必须使用在FormView. 我知道如何SCOPE_IDENTITY在同一个存储过程中使用 when ,但这次我需要一些更容易在代码隐藏中完成的逻辑,但我不知道如何获取 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)"

4

2 回答 2

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); 
   }
} 
于 2012-07-10T06:11:24.470 回答
0

您可以使用 out 参数更新存储过程。这会给你之后的ID

更新。

然后,您可以将 ID 用于插入。

http://blogs.msdn.com/b/spike/archive/2009/05/07/a-simple-example-on-how-to-get-return-and-out-parameter-values-using-ado-网络.aspx

于 2012-07-10T06:21:05.720 回答