1

私はを使用しており、レコードを編集するためにストアドプロシージャを使用してFormViewそれをにバインドしています。SqlDataSource重要なのは、レコードを更新した後onClick、ボタンの属性を使用して実行している別の関数を呼び出す必要があるということです。

この関数は、で編集されたレコードのIDを使用して、いくつかのレコードを別のテーブルに挿入する必要がありFormViewます。同じストアドプロシージャでの使用方法は知っています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)"

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- net.aspx

于 2012-07-10T06:21:05.720 に答える