Как установить свойства в Sharepoint динамически? - PullRequest
0 голосов
/ 23 июня 2011

Я запрограммировал WebPart для Sharepoint, который позволяет динамически устанавливать некоторые свойства.

Код этого сайта следующий:

    private void SetValues()
    {
        int counter = 0;
        Control userControl = this.Controls[0];
        for (int i=0; i<userControl.Controls.Count; i++) {
        //foreach (Control element in userControl.Controls) {
            Control element = userControl.Controls[i];
            if (element is Button)
            {
                Button button = (Button)element;
                if (counter < 9)
                {
                    button.Text = _buttonCaptions[counter];
                    element = button;
                }
                counter++;
            }
        }

    }

    #endregion Properties

    #region Methods

    protected override void CreateChildControls()
    {
        Control control = Page.LoadControl(_ascxPath);
        Controls.Add(control);

        SetValues();
    }

Свойства отображаются в Sharepoint, и при редактировании этих значений вызывается метод «SetValues ​​()». Но Buttontexts не обновляются, пока я не остановлю программу и не перекомпилирую код. Даже перезагрузка сайта не помогает.

При отладке я вижу, что «button.Text» назначен правильно.

Любая подсказка?

[править] Благодаря ответу 2 я изменил его следующим образом:

 protected override void CreateChildControls()
    {
        Control control = Page.LoadControl(_ascxPath);
        SetValues(control);          
        Controls.Add(control);           
   }

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Вы пытались добавить элементы управления Controls.Add(control) после метода setvalues ​​...

0 голосов
/ 24 июня 2011

Попробуйте вызвать SetValues ​​с элементом управления в качестве параметра перед вызовом Controls.Add - добавление пользовательского элемента управления в коллекцию элементов управления веб-части может иметь некоторые побочные эффекты, и код может не выполняться в ожидаемом порядке.

Также проверьте, есть ли в настройках что-то нестандартное для кэша объектов или прекомпиляции.

...