2012-03-23 2 views
0

내 사이트에 드롭 다운 상자를 배치했지만 각 탭 (예 : url1, url2 등)을 새 탭으로 바인딩하는 방법을 모르거나 페이지.Sharepoint 2010 사이트에서 하이퍼 링크가있는 드롭 다운 상자를 추가하는 방법

<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> 

나는 사용자가 하나의 옵션을 선택하고 페이지가 자신이 선택한 사이트로 그를 리디렉션 선택하고 싶다.

어떻게 할 수 있습니까? 코드에 따라

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

내가이 어떻게해야합니까? – GiorgosTekos

답변

0

그냥이 방법을 이 코드를 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(); 
     } 
+0

절대적으로 맞습니다! – GiorgosTekos

+2

@GiorgosTekos : 이것이 맞으면 왼쪽의 체크 표시와 위쪽 화살표를 클릭하십시오. –

+0

이 질문을 읽어야합니다. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Jigs

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 및 배포 it..Bingo :

+0

코드가 맞지만 시간이 오래 걸립니다. – Jigs

+0

@ jigs-but this 셰어 포인트 개발자의 초보자에게 완벽합니다. –

+0

DropDownList를 사용하지 않는 이유는 무엇입니까? –

-1

에 추가 귀하의 요구 사항에 따라 완벽한하시기 바랍니다있다 -이 :

+1

당신이 downvote 경우 이유를 지정 친절하시기 바랍니다. –

관련 문제