2011-07-30 9 views
1

J'ai deux paramètres définis dans le projet de partie Web SharePoint, destinés à être transmis dans Application_Startup() dans une application Silverlight lorsqu'un utilisateur sélectionne deux zones de liste déroulante (navigable Propriétés). D'une certaine manière, le contrôle Silverlight ne s'affiche pas lorsque je le charge sur le site SharePoint. Avec 1 paramètre passé, le contrôle s'affiche sans erreur. Des idées? Syntaxe? Exemples?Transmettez 2 paramètres au contrôle Silverlight du projet de partie Web SharePoint dans l'application Silverlight

App.xaml.cs:

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    //testing 
    string _setArticles = null; 
    string _setLength = null; 
    if (e.InitParams != null && e.InitParams.Count >= 1) 
    { 
     _setArticles = e.InitParams["_setArticles"]; 
     _setLength = e.InitParams["_setLength"]; 
    } 
    this.RootVisual = new Page(_setArticles, _setLength); 
} 

Page.xaml.cs:

public Page(string _setArticles, string _setLength) 
{ 
    InitializeComponent(); 

    //(number of items to display on load) 
    if (!string.IsNullOrEmpty(_setArticles) && !string.IsNullOrEmpty(_setLength)) 
    { 
     if (_setArticles.Equals("_1_article"))     
      retrieveOneListboxItemStaffNews(); 
      GetData3(); 
     if (_setArticles.Equals("_2_articles")) 
      retrieveTwoListboxItemStaffNews(); 
      GetData3(); 
     if (_setArticles.Equals("_3_articles")) 
      retrieveThreeListboxItemStaffNews(); 
      GetData3(); 

     //testing 
     //send value to method 'fullNameControl_Loaded' (summary length of each ListBox item)      
     if (_setLength.Equals("_3_lines")) 
      m_textBlock.MaxHeight = 40; 
     if (_setLength.Equals("_4_lines")) 
      m_textBlock.MaxHeight = 50; 
     if (_setLength.Equals("_5_lines")) 
      m_textBlock.MaxHeight = 65; 
    } 
} 

SilverlightSecondWebPart.cs:

protected override void CreateChildControls() 
{ 
    base.CreateChildControls(); 

    //silverlight control 
    silverlightControl = new Silverlight(); 
    silverlightControl.ID = "News"; 
    silverlightControl.Source = "/ClientBin/News.xap"; 
    silverlightControl.Width = new System.Web.UI.WebControls.Unit(800); 
    silverlightControl.Height = new System.Web.UI.WebControls.Unit(550); 


    //testing 
    string parameters = "_setArticles=" + _myEnum + ", " + "_setLength=" + _myEnum2; 
    silverlightControl.InitParameters = parameters; 
    silverlightControl.MinimumVersion = "2.0"; 

    Controls.Add(silverlightControl); 
} 

Répondre

1

utiliser Quoi qu'il en soit

if (_setArticles.Equals("_1_article")) 
{ 
    retrieveOneListboxItemStaffNews(); 
    GetData3(); 
} 
if (_setArticles.Equals("_2_articles")) 
{ 
    retrieveTwoListboxItemStaffNews(); 
    GetData3(); 
} 
if (_setArticles.Equals("_3_articles")) 
{ 
    retrieveThreeListboxItemStaffNews(); 
    GetData3(); 
} 

sinon GetData3() sera appelé de toute façon, 3 fois chaque fois.

+0

merci pour la réponse. Savez-vous comment je peux accéder à un bloc de texte incorporé dans un datatemplate? les exemples en ligne ne sont pas vraiment utiles, car ils concernent la spécification d'une clé x: key @? – brainsfrying

Questions connexes