2010-12-09 5 views
3

Veuillez nous aider. J'ai ce qui suit - ListView et ses deux gestionnaires AdminUsersListView_ItemEditing, AdminUsersListView_Load.EditTemplate pour ListView ne s'applique pas

<asp:ListView ID="AdminUsersListView" runat="server" 
    onitemediting="AdminUsersListView_ItemEditing" onload="AdminUsersListView_Load" 
    DataKeyNames="UserId"> 
     <LayoutTemplate> 
      <table cellpadding="2" runat="server" id="usersTable"> 
      <tr runat="server" id="itemPlaceholder" /> 
      </table> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr> 
      <td><asp:LinkButton ID="EditButton" runat="server" Text="Edit" CommandName="Edit" /></td> 
      <td><asp:Label ID="NameLabel" runat="server" Text='<%# Eval("UserName") %>' /></td> 
      </tr> 
     </ItemTemplate> 
     <EditItemTemplate> 
      <tr> 
      <td><asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /><asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" /></td> 
      <td><asp:Label runat="server" ID="NameLabel" AssociatedControlID="NameTextBox" Text="Name"/><asp:TextBox ID="NameTextBox" runat="server" Text='<%# Bind("UserName") %>' MaxLength="50" /></td> 
      </tr> 
     </EditItemTemplate> 
    </asp:ListView> 

Après la compilation je vois la page habituelle avec table et bouton Modifier contre chaque ligne, je clique sur le bouton, republier envoie, mais rien ne se passe.

Handlers sont les suivantes:

protected void AdminUsersListView_ItemEditing(Object sender, ListViewEditEventArgs e) 
{ 
} 

protected void AdminUsersListView_Load(Object sender, EventArgs e) 
{ 
    try 
    { 
     Int32 itemCount = Request["itemCount"] == null ? 10 : Int32.Parse(Request["itemCount"]); 
     Int32 itemPage = Request["itemPage"] == null ? 0 : Int32.Parse(Request["itemPage"]); 
     List<String> currentRoleList = Roles.GetRolesForUser().ToList(); 
     UsersManager usersManager = new UsersManager(); 
     IEnumerable<DbDataRecord> userList = usersManager.getAllowedUsersForRole(currentRoleList).ToList(); 
     userList = userList.Skip(itemCount * itemPage).Take(itemCount); 
     AdminUsersListView.DataSource = userList; 
     AdminUsersListView.DataBind(); 
    } 
    catch (Exception exceptionData) 
    { 
     Log.setMessage(exceptionData); 
    } 
} 

Question - Pourquoi je vois toujours ItemTemplate et ne peut pas voir EditTemplate?

Merci d'avance, Art.

Répondre

1

réponse est à l'index situé directement de l'élément d'édition/ligne comme ceci:

protected void lvwCustomers_ItemEditing(object sender, ListViewEditEventArgs e) 
{ 
    CloseInsert(); 
    lvwCustomers.EditIndex = e.NewEditIndex; 
    BindList(); 
} 

Description détaillée peut être trouvée ici: http://geekswithblogs.net/rashid/Default.aspx

1

Pouvez-vous essayer la liaison de données avec l'événement load?

+0

Que voulez-vous dire? Requête SQL directe dans ListView DataSource? J'ai seulement essayé de copier le code de Load event vers Edit, cela ne fonctionne pas. – Anonymous

Questions connexes