10

私はGridViewを持っています。私の GridView には、「オプション」列を含む列があります。この列には、従来の CommandField オプション (編集、削除など) が含まれています。CommandField が使用されているときに機能するようにコードをセットアップしました。ただし、カスタムの書式設定を行う必要があるため、CommandField を TemplateField に変換する必要がありました。

私の質問は、TemplateField のさまざまな LinkBut​​ton 要素から OnRowCommand、OnRowEditing、OnRowDeleting、および OnRowUpdating イベントをトリガーするにはどうすればよいですか?

ありがとうございました!

4

3 に答える 3

23

テンプレート列内の LinkBut​​ton の CommandName プロパティを、編集の場合は「編集」、削除の場合は「削除」、更新の場合は「更新」に設定するだけです。これにより、GridView の RowEditing、RowDeleting、および RowUpdating イベントがそれぞれトリガーされます。RowCommand イベントをトリガーするには、GridView コントロールの OnRowCommand プロパティを設定する必要があります。

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>
于 2009-10-30T03:26:28.190 に答える
13

私も同じ問題を抱えていました。

編集のために、私は次のことを行いました:

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="EditButton"
                                runat="server"
                                CommandName="Edit" 
                                Text="Edit" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:LinkButton ID="UpdateButton"
                                runat="server"
                                CommandName="Update"
                                Text="Update" />&nbsp;
                <asp:LinkButton ID="Cancel"
                                runat="server"
                                CommandName="Cancel"
                                Text="Cancel" />
            </EditItemTemplate>
        </asp:TemplateField>

これにより、更新ボタンとキャンセル ボタンの表示/非表示が可能になります。

削除に関しては、次を使用しました。

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
于 2010-09-07T22:16:49.917 に答える
1

プロパティの列をCommandField(Edit,update,Cancel)クリックし、追加して「このフィールドをテンプレートフィールドに変換する」をクリックします

ソースに切り替えて、自動的にコードを追加します。

于 2012-04-11T10:55:26.723 に答える