【问题标题】:How to add dropdown box , with hyperlinks, in Sharepoint 2010 Site如何在 Sharepoint 2010 站点中添加带有超链接的下拉框
【发布时间】:2017-12-12 16:59:19
【问题描述】:

我已将下拉框放置在我的站点中,但我不知道如何将每个选择(即 url1、url2 等)与新选项卡或页面绑定。

<form>
    <label>
        <u>S</u>earch Engines
    </label>
    <select accesskey="S" onchange="goToPage(this.options(this.selectedIndex).value)">
        <option selected>Please select one</option>
        <option value="http://search.msn.com/">MSN Search</option>
        <option value="http://www.google.com/">Google</option>
        <option value="http://www.search.com/">Search.com</option>
        <option value="http://www.dogpile.com/">Dogpile</option>
    </select>
</form>

我希望用户只选择一个选项,然后页面将他重定向到他选择的站点。

请问这怎么办?

【问题讨论】:

    标签: sharepoint hyperlink drop-down-menu


    【解决方案1】:

    按照您的要求,以下代码是完美的

    StringBuilder sb = new StringBuilder();
                Label lbl = new Label();
                sb.Append("<select accesskey='S' onchange='if (this.value) window.location.href=this.value'>");
                using (SPSite oSiteCollection = new SPSite(SPContext.Current.Web.Url))
                {
                    SPWebCollection collWebsites = oSiteCollection.AllWebs;
    
    
                    foreach (SPWeb oWebsite in collWebsites)
                    {
                        sb.Append("<option value='"+oWebsite.Url+"'>"+oWebsite.Name+"</option>");
                    }
                }
                sb.Append("</select>");
                lbl.Text = sb.ToString();
                this.Controls.Add(lbl);
    

    只需添加到您的 Webpart 并部署它..Bingo :)

    【讨论】:

    • @jigs-但这非常适合sharepoint开发者的初学者。
    • @MaksMatsveyeu :但这是完美的解决方案,不需要采取 Dropdownlist 所以......
    【解决方案2】:

    这样做:-

    <select name="siteURL" accesskey="S" onchange="window.open(siteURL.options[selectedIndex].value)">
    

    【讨论】:

    【解决方案3】:

    请将此代码添加到您的 ascx 中:

    <asp:DropDownList runat="server" ID="ddlSites" AutoPostBack="True" OnTextChanged="SiteSelected" ></asp:DropDownList>
    

    并在后面的代码中加入这段代码:

    private void BindSiteDropDown()
            {
                var sites = new Dictionary<string, string>()
                                {
                                    {"MSN Search", "http://search.msn.com/"},
                                    {"Google", "http://google.com"}
                                };
                ddlSites.Items.Clear();
                foreach (var site in sites)
                {
                    ddlSites.Items.Add(new ListItem(site.Key, site.Value));
                }
            }
    
            protected void SiteSelected(object sender, EventArgs e)
            {
                Page.Response.Redirect(((DropDownList)sender).SelectedValue);
            }
    

    并在页面加载中调用BindSiteDropDown()方法,例如这样:

    protected void Page_Load(object sender, EventArgs e)
            {
                if(!IsPostBack)BindSiteDropDown();
            }
    

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 2015-01-17
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      相关资源
      最近更新 更多