1

ASP.NET 4.5 を使用して、現在ログインしているユーザーの ID を Oracle データベース テーブルに挿入する必要があります。ローカル AD サーバーで Windows 認証を使用しています。

管理者ユーザーが [上書き] ボタンをクリックすると、その ID を (他の 2 つの値と共に) 別のテーブルに挿入して、上書きを行っ人物を特定する必要があります。OnClick()これは、SqlDataSource の挿入コマンドを実行する [オーバーライド] ボタンにある種のメソッドが必要であることを意味しますか? それとも、これを完全にプログラムで行う必要がありますか (SqlDataSource 挿入コマンドを使用しないでください)?

これが私がこれまでに持っているGridViewです:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
                  CellPadding="6" DataSourceID="SqlDataSource" ForeColor="#333333" GridLines="None" PageSize="20"
                  DataKeyNames="PP_TRANS_REF_NUM" >
        <AlternatingRowStyle BackColor="White" />
        <Columns>
            <asp:TemplateField ShowHeader="false" >
                <ItemTemplate>
                    <asp:Button ID="btnOverride" runat="server" Text="Override" CssClass="pure-button pure-button-active" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="PP_TIMESTAMP" HeaderText="Timestamp" SortExpression="PP_TIMESTAMP" ReadOnly="True" />
            <asp:BoundField DataField="PP_CARD_CODE" HeaderText="Card Code" SortExpression="PP_CARD_CODE" ReadOnly="True" />
    ... (Extra Gridview columns, shortened for brevity.
</asp:GridView>

そして、ここに私の SqlDataSource があります:

<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:CxString %>" ProviderName="<%$ ConnectionStrings:CxStringProviderName %>"
                   SelectCommand="SELECT * FROM Z_PCARD_PRELOAD"
                   InsertCommand="INSERT INTO Z_PCARD_OVERRIDE (PO_TIMESTAMP, PO_TRANS_REF_NUM, PO_AUTH_USERID) VALUES (:PP_TIMESTAMP, :PP_TRANS_REF_NUM, )"
                   FilterExpression="PP_MSG_CODE LIKE '%Z%'" >
    <InsertParameters>
        <asp:ControlParameter ControlID="GridView1" Name="PP_TIMESTAMP" PropertyName="SelectedValue" Type="String" />
        <asp:ControlParameter ControlID="GridView1" Name="PP_TRANS_REF_NUM" PropertyName="SelectedValue" Type="String" />
    </InsertParameters>
</asp:SqlDataSource>
4

1 に答える 1

1

これまでのところ、ほとんどうまくいくはずです。あなたがする必要があるのはCommandName="Insert"、あなたの Button コントロールに追加することだけだと思います:

<asp:Button ID="btnOverride" runat="server" Text="Override" 
    CssClass="pure-button pure-button-active" CommandName="Insert" />

そうすれば、アタッチされた SqlDataSource コントロールは、設定した「InsertCommand」を実行することを認識します。

于 2013-07-10T15:13:40.990 に答える