繁体   English   中英

动态添加到SharePoint WebPart的链接

[英]Dynamically add links to sharepoint webpart

嗨,Stackoverflow社区! 我正在使用带有Visual Studio 2012和Windows Server 2012的Sharepoint 2013服务器。因此,我必须构建一个Webpart,该Webpart应该通过文本框向GUI添加链接。 此外,还应该可以添加另一个链接。 添加新链接后,链接的整个集合应显示在列表中。 现在的问题是:添加链接后,网站将重新加载。 结果,存储链接的数组仅包含最新链接。 以前的所有链接都消失/删除。

这是我的处理方法:

    protected void Page_Load(object sender, EventArgs e) {
        if (Page.IsPostBack) {
            Events = new List<String>();
        }
    }

    protected void btnAddLink_click(object sender, EventArgs e) {
        AddToList();
        List<String> links = Events;
        foreach (String s in links) {
            HyperLink link = new HyperLink();
            link.NavigateUrl = s;
            link.Text = s;
            lnkPanel.Controls.Add(link);
        }
        foreach (String l in links) {
            tbDescription.Text += l + "\n";
        } 
    }

    public List<String> Events {
        get { return (List<String>)ViewState["HyperLinkList"]; }
        set { ViewState["HyperLinkList"] = value; }
    }

    public void AddToList() {
        List<String> events = Events; // Get it out of the viewstate
        String l = tbLinks.Text; // tb = textbox (user input)
        HyperLink link = new HyperLink();
        link.NavigateUrl = tbLinks.Text;
        link.Text = tbLinks.Text;
        if (!events.Contains(link.NavigateUrl.ToString())) {
            events.Add(l);
        }
        Events = events; // Add the updated list back into the viewstate

    }

我希望有人可以帮助我解决我的问题(也许是nooby)。

啊,你需要这个:

protected void Page_Load(object sender, EventArgs e) {
    if (!Page.IsPostBack) {
        Events = new List<String>();
    }
}

每次加载页面时,您都要在viewstate中擦除列表的内容。 您需要添加! 确保它不是回发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM