2011-03-25 21 views
7

Estoy usando un GridView y me encontré con el clic dos veces en el enlace Editar para ver el problema de campos de edición. Siguiendo los consejos, vuelvo a unir mi GridView en el controlador .RowEditing. El problema persiste que solo veo campos de edición después de mi segundo clic en cualquiera de los enlaces Editar.Edición de Gridview, haga clic dos veces problema

<%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false" 
    CodeBehind="Default.aspx.vb" Inherits="GridViewTest._Default" %> 

    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    </asp:Content> 
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
     <h2> 
      Welcome to ASP.NET! 
     </h2> 
     <p> 
      To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>. 
      <asp:GridView ID="gvReport" runat="server" AutoGenerateColumns="False" 
       AutoGenerateEditButton="True"> 
       <Columns> 
        <asp:BoundField DataField="c1" HeaderText="C1" /> 
        <asp:BoundField DataField="c2" HeaderText="C2" /> 
        <asp:BoundField DataField="c3" HeaderText="C3" /> 
        <asp:BoundField DataField="c4" HeaderText="C4" /> 
        <asp:BoundField DataField="c5" HeaderText="C5" /> 
        <asp:BoundField DataField="c6" HeaderText="C6" /> 
        <asp:BoundField DataField="c7" HeaderText="C7" /> 
        <asp:BoundField DataField="c8" HeaderText="C8" /> 
       </Columns> 
      </asp:GridView> 
     </p> 
     <p> 
      You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409" 
       title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>. 
     </p> 
    </asp:Content> 





    Public Class _Default 
     Inherits System.Web.UI.Page 

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      If Not IsPostBack Then 
       loaddata() 
      End If 
     End Sub 

     Sub loaddata() 

     'Get dataview dvAgTarRet_gv 



      gvReport.DataSource = dvAgTarRet_gv 
        gvReport.DataBind() 
      Session.Add("gvReport", dvAgTarRet_gv) 

      end sub 
+1

Es necesario para publicar su código detrás de demostrar cómo está el enlace de datos. Parece que está vinculando datos de forma inapropiada a la vista de cuadrícula y perdiendo el estado de visualización, por lo tanto, el evento no puede asociarse con el estado de control original. Intente solo el enlace si la página no está en modo de devolución de datos usando Page.Postback. –

+0

Brian, vale, ahora tengo un controlador .RowEditing vacío. Y después de hacer clic en editar que causa la devolución, ¿no veo ningún cuadro de texto/cambio a la página? – fran

+0

fran, necesita publicar su código/marcado para revisar. –

Respuesta

17

Obtenido. Necesario para establecer EditIndex de gridview y luego hacer un enlace de datos.

Private Sub gvReport_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvReport.RowEditing 
    gvReport.DataSource = CType(Session("gvReport"), DataView) 
    gvReport.EditIndex = e.NewEditIndex 
    gvReport.DataBind() 
End Sub 
+0

De las 100 "soluciones" a este problema que he leído, esta es la que funciona. Gracias fran. – AnotherDeveloper

+1

+1 Sin duda trabajó para agregar el método de enlace de datos específico según el código de uno. – bonCodigo

3

Simplemente llame a su función de unión cuadrícula:

protected void GvEmployee_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GvEmployee.EditIndex = e.NewEditIndex; 
    bindgridview(); // method of binding gridview 
} 
Cuestiones relacionadas