2009-10-30 12 views
10

私はGridViewを持っています。私のGridViewには「オプション」列が含まれている列があります。この列には、従来のCommandFieldオプション(編集、削除など)が含まれています。私はCommandFieldが使用されているときに動作するコード設定を持っています。しかし、私はCommandFieldをTemplateFieldに変換する必要があったので、カスタムフォーマットを行う必要があります。TemplateFieldとしてのASP.NET + GridView + CommandField

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

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

答えて

22

テンプレート列内のLinkBut​​tonのCommandNameプロパティを編集用に 'Edit'に、削除用に 'Delete'に、更新用に 'Update'に設定するだけです。これにより、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> 
12

私は同じ問題がありました。

 <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> 

これは、更新の上映/隠ぺいを可能にし、ボタンを取り消す:

は、編集のために、私は次のことをやりました。

削除のために、私は次のように使用されるように:CommandField(Edit,update,Cancel)を追加し、プロパティの列に

<asp:TemplateField> 
     <ItemTemplate> 
      <asp:LinkButton ID="DeleteButton" 
          Text="Delete" 
          CommandName="Delete" 
          runat="server" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
1

クリックし、ソースと自動的に行くために「templateFieldにこのフィールドを変換する」

Swichをクリックします。コードを追加します。