如何

2012-02-22 84 views
3

嗨,我使用ASPTokenInput库从以下网址找到预先填入上ASPTokenInput一些标签 https://github.com/harindaka/ASPTokenInput/wiki 任何一个可以请帮我,我怎么能预先填充在页面加载和局部回传如何

+0

他们有一个全功能的演示这里https://github.com/harindaka/ASPTokenInput/downloads – 2012-06-01 01:08:54

+0

你曾经有尝试我所提供的代码的机会呢?或者你想出了一个替代解决方案? – Peter 2012-07-23 14:14:57

回答

1

有一些令牌控制稍微调整一下代码,看起来这个功能并没有在原代码中完全测试过。我试着将项目添加到“项目”,并在页面加载时显示出来,但如果我添加了新项目,则会立即消失,因为它们未存储在隐藏字段中。

代码的修改后,你可以做到以下几点,其中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); 

    }