Bonjour à tous,

J'ai un petit souci avec les modes d'affichage des WebPart dans une page aspx, certains modes ne sont apparemment pas disponibles (Design, Edit).

J'ai créé une page avec une WebPartManager, une WebPartZone que j'ai nommé WebPartZoneLinks et j'y ai placé des hyperlinks, j'ai ajouté une DropDownList dans la page nommé DropDownListDisplayModes, censée proposer les modes d'affichage des WebParts. J'ai aussi ajouté un contrôle EditorZone avec un AppearanceEditorPart.

Voici le code que j'ai dans mon fichier aspx.cs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
 
public partial class _Default : System.Web.UI.Page 
{
    WebPartManager _wpManager;
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    void Page_Init(object sender, EventArgs e)
    {
    Page.InitComplete += new EventHandler(InitializationComple);
    }
    public void InitializationComple(object sender, System.EventArgs e)
    {
 
        _wpManager = WebPartManager.GetCurrentWebPartManager(Page);
        String browseModeName = WebPartManager.BrowseDisplayMode.Name;
 
        foreach (WebPartDisplayMode mode in _wpManager.SupportedDisplayModes)
        {
            string modeName = mode.Name;
            if (mode.IsEnabled(_wpManager))
            {
                ListItem item = new ListItem(modeName, modeName);
                DropDownListDisplayModes.Items.Add(item);
 
            }
        }
    }
 
    protected void DropDownListDisplayModes_SelectedIndexChanged(object sender, EventArgs e)
    {
        String selectMode = DropDownListDisplayModes.SelectedValue;
        WebPartDisplayMode mode = _wpManager.SupportedDisplayModes[selectMode];
        if (mode != null)
            _wpManager.DisplayMode = mode;
    }
    void Page_PreRender(object ender, EventArgs e)
    {
        ListItemCollection items = this.DropDownListDisplayModes.Items;
        int selectedIndex = items.IndexOf(items.FindByText(_wpManager.DisplayMode.Name));
        DropDownListDisplayModes.SelectedIndex = selectedIndex;
    }
}
Le DropDownList n'affiche que le mode Browse, ce qui signifie donc que le test pour if (mode.IsEnabled(_wpManager)) pour les autres modes retournent false mais je ne comprends pas pourquoi. Ai-je oublié une configuration ?

Merci d'avance pour votre aide.