2012-03-06 2 views
1

Я хочу GridView с видимой кнопкой «Редактировать» и скрытой кнопкой «Обновить», а также когда режим редактирования enetring для отображения переключателя строки, например this example in here (около середины страницы, I думаю, что он делает это с помощью 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, она не будет отображаться. Это происходит потому, что вы находитесь в EditItemTemplate, а не в ItemTemplate.

<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 как изображение, которое появится, когда сетка переходит в режим редактирования.

В случае RowEditing теперь не придется беспокоиться о вручную скрывая или отображение кнопок, вы просто установите EditIndex и перепривязывают ваши данные:

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

Единственная проблема, что это может привести является то, что вы не сможете создать пользовательский шаблон нижнего колонтитула в этом столбце. Вероятно, лучший способ сделать то, что вы пытаетесь выполнить с этим нижним колонтитом, в любом случае.

+0

На самом деле оба решения кажутся мне полезными, я выбираю его первым, так как он больше похож на мою начальную точку, но попробуем и этот, спасибо –

Смежные вопросы