Magazine Internet

[ASP] Méthode facile pour utiliser l'InsertItemTemplate

Publié le 26 juillet 2011 par Jeremy.jeanson

Navigant aujourd'hui entre MVC et WebForm, je profite de ce poste pour exhumer un vieux bout de code dont je me suis déjà servi un bon nombre de fois pour n’afficher l’InserItemTemplate d’un control de donnée WebForm que lorsque l’on ne a besoin.

L’idée est simple : n’afficher l’InserItemTemplate que lorsque l’utilisateur click sur un bouton (genre “Inserer un nouvel enregistrement”).

Pour ce faire j’ai opté pour une solution tout aussi simple que la problématique : Utiliser la propriété InsertItemPosition pour afficher l’InsertItem position quand il est demandé.

Ce qui donne côté aspx:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <ContentTemplate>
       <asp:ListView ID="ListView1" runat="server" OnItemInserted="ListView1_ItemInserted">
             <EditItemTemplate>
             </EditItemTemplate>
             <InsertItemTemplate>
             </InsertItemTemplate>
             <ItemTemplate>
             </ItemTemplate>
       </asp:ListView>
     </ContentTemplate>
 </asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> 

Et côté code behind :

protected void Page_Load(object sender, EventArgs e)
{
     if (!this.Page.IsPostBack)
     {
          this.ListView1.InsertItemPosition = InsertItemPosition.None;
     }
}

protected void Button1_Click(object sender, EventArgs e)
{
     this.ListView1.InsertItemPosition = InsertItemPosition.LastItem;
}

protected void ListView1_ItemInserted(object sender, ListViewInsertedEventArgs e)
{
     this.ListView1.InsertItemPosition = InsertItemPosition.None;
}

Plustôt simple non?

Certains préfèreront peut-être un panel visible/invisible ?


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte