Как предварительно заполнить какой-то тег на ASPTokenInput - PullRequest
3 голосов
/ 22 февраля 2012

Привет я использую библиотеку ASPTokenInput найти снизу URL https://github.com/harindaka/ASPTokenInput/wiki Может ли кто-нибудь, пожалуйста, помогите мне, как я могу предварительно заполнить некоторый токен управления при загрузке страницы и при частичной обратной передаче

1 Ответ

1 голос
/ 12 июля 2012

Пришлось немного подправить код, похоже, что эта функция не была полностью протестирована в исходном коде. Я пытался просто добавить элементы в «Элементы», и они появлялись при загрузке страницы, но сразу исчезли, если бы я добавил новый элемент, поскольку они не сохранялись в скрытом поле.

После модификации кода вы можете сделать следующее, где tiTest2 является элементом управления ASPTokenInput (извините, нет поддержки tiTest2.Items.Add):

            List<ASPTokenInput.Item> items = new List<ASPTokenInput.Item>();
            items.Add(new ASPTokenInputLib.ASPTokenInput.Item() { id = "United States", name = "United States" });
            items.Add(new ASPTokenInputLib.ASPTokenInput.Item() { id = "Brazil", name = "Brazil" });


            tiTest2.Items = items;

Вам необходимо изменить код следующим образом:

   //Change the Items property to the following
   public List<Item> Items
    {
        get
        {
            this.EnsureChildControls();
            if (String.IsNullOrEmpty(_hfPersist.Value)) return new List<Item>();

            else return (List<Item>)new JavaScriptSerializer().Deserialize<IList<Item>>(_hfPersist.Value);
        }
        set
        {
            this.EnsureChildControls();
            _hfPersist.Value = new JavaScriptSerializer().Serialize(value); 
        }
    }

  //Empty out "OnLoad", so it looks like this.  The functionality it was providing we don't need anymore
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

    }
...