2012-03-06 122 views
1

GridViewに「編集」ボタンと非表示の「更新」ボタンが表示され、行の編集モードを有効にすると、this example in here(ページ中央付近彼がAutoGenerateEditButton = "true"で行うと思う)。GridVIew:編集時に編集と更新ボタンを切り替えます

これは私のグリッドのボタンです:

<asp:TemplateField ItemStyle-CssClass="campoCentrado"> 
     <ItemTemplate> 
      <asp:ImageButton ID="btEditarGrid" ImageUrl="~/imagenes/edit.png" CommandName="Edit" OnClick="GridView_EditMode" runat="server" /> 
      <asp:ImageButton ID="btGuardarGrid" ImageUrl="~/imagenes/guardar.png" CommandName="Update" Visible="false" runat="server" /> 
     </ItemTemplate> 
     <FooterTemplate> 
      <asp:ImageButton ID="btInsertarGrid" ImageUrl="~/imagenes/insertar.png" OnClick="GridView_Insert" runat="server" /> 
     </FooterTemplate> 
    </asp:TemplateField> 

と動作しません、私のRowEditingevent、:あなたのように、[編集]ボタンを追加したい場合は

Private Sub gvCuestionarios_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvCuestionarios.RowEditing 
    If e.NewEditIndex >= 0 Then 
     Dim guardar As ImageButton = gvCuestionarios.Rows(e.NewEditIndex).FindControl("btGuardarGrid") 
     If Not guardar Is Nothing Then 
      guardar.Visible = True 
     End If 
    End If 
End Sub 

はあなたに

+0

編集イベントが発生していませんか? – Jigs

答えて

2

TemplateFieldにEditItemTemplateを追加し、その内部に更新ボタンを配置します。編集モードに入ったら、ItemTemplateにボタンを表示するかどうかは関係ありません。表示されません。これは、ItemTemplateではなくEditItemTemplateにあるためです。

<asp:TemplateField ItemStyle-CssClass="campoCentrado"> 
    <ItemTemplate> 
     <asp:ImageButton ID="btEditarGrid" ImageUrl="~/imagenes/edit.png" CommandName="Edit" runat="server" /> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:ImageButton ID="btUpdateGrid" ImageUrl="~/imagenes/guardar.png" CommandName="Update" runat="server" /> 
     <!-- This would be to cancel out of Edit mode, would need to have a cancel.png --> 
     <asp:ImageButton ID="btGuardarGrid" ImageUrl="~/imagenes/cancel.png" CommandName="Cancel" runat="server" /> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:ImageButton ID="btInsertarGrid" ImageUrl="~/imagenes/insertar.png" OnClick="GridView_Insert" runat="server" /> 
    </FooterTemplate> 
</asp:TemplateField> 
3

ありがとうございましたImageButtonを使用するのが最も簡単な方法は、CommandFieldを使用することです。

<asp:GridView ID="gvCuestionarios" runat="server" 
    OnRowCancelingEdit="gvCuestionarios_RowCancelingEdit" 
    OnRowEditing="gvCuestionarios_RowEditing" 
    OnRowUpdating="gvCuestionarios_RowUpdating"> 
    <Columns> 
     <asp:CommandField 
      ShowEditButton="true" 
      ShowCancelButton="true" 
      ButtonType="Image" 
      EditImageUrl="~/imagenes/edit.png" 
      UpdateImageUrl="~/imagenes/guardar.png" 
      CancelImageUrl="~/imagenes/cancel.png" /> 
    </Columns> 
</asp:GridView> 

グリッドが編集モードになったときに表示される画像としてcancel.pngの取り消しボタンが追加されています。あなたは今、あなただけのEditIndexを設定し、データを再バインド、ボタンを隠したり表示し、手動で心配する必要はありませんRowEditingイベントで

Private Sub gvCuestionarios_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvCuestionarios.RowEditing 
    gvCuestionarios.EditIndex = -1 
    BindData() 
End Sub 

、これが原因かもしれない唯一の問題はということですその列にカスタムフッターテンプレートを作成することはできません。とにかくそのフッターで達成しようとしていることを行う良い方法があります。

+0

実際には両方の解決策が私には良いように思えますが、私は彼が最初のものを選ぶのは私の出発点に似ていますが、これも試してみます。ありがとう –

関連する問題