0

挿入ボタンと削除ボタンのあるフォームビューがあります。挿入ボタンは onInserting イベントを発生させますが、削除ボタンは onDeleting イベントを発生させません。なんで?これが私のコードです:

<asp:FormView ID="LanguagesFormView" runat="server" DefaultMode="Insert" DataSourceID="LanguageSqlDataSource" OnItemInserting="LanguagesFormView_ItemInserting" OnItemDeleting="LanguagesFormView_ItemDeleting">
    <InsertItemTemplate>
        <dx:ASPxComboBox ID="ASPxComboBox1" runat="server" DataSourceID="LanguageSqlDataSource" ValueField="LanguageID" TextField="LanguageEN"></dx:ASPxComboBox>
        <dx:ASPxListBox ID="ASPxListBox1" runat="server" DataSourceID="ProjectLanguageSqlDataSource" TextField="LanguageEN"></dx:ASPxListBox>
        <dx:ASPxButton ID="addLangASPxButton" runat="server" CommandName="Insert" Text="Add"></dx:ASPxButton>
        <dx:ASPxButton ID="deleteLangASPxButton" runat="server" CommandName="Delete" Text="Delete"></dx:ASPxButton>
    </InsertItemTemplate>
</asp:FormView>

イベント ハンドラにブレークポイントを配置してテストしました。

4

1 に答える 1

2

FormView が挿入モードの場合、OnItemDeleting イベントは発生しません。新しいレコードを挿入するだけの場合、どのレコードを削除すればよいかをどのように判断できるのでしょうか。

InsertItemTemplate ではなく ItemTemplate に削除ボタンを配置すると、削除イベント ハンドラが正しく起動します。

<asp:FormView ID="LanguagesFormView" runat="server" DataSourceID="LanguageSqlDataSource"
    OnItemInserting="LanguagesFormView_ItemInserting" OnItemDeleting="LanguagesFormView_ItemDeleting" DataKeyNames="LanguageID">
    <ItemTemplate>
        ...
        <dx:ASPxButton ID="deleteLangASPxButton" runat="server" CommandName="Delete" Text="Delete" />
    </ItemTemplate>
</asp:FormView>

また、サーバー側で削除するキーを取得するには、FormView で DataKeyNames プロパティを設定する必要があることに注意してください。

于 2013-11-07T15:40:18.633 に答える