2011-02-02 15 views
2

Sharepointリストの情報に基づいてドロップダウンリストを動的に設定しようとしています。ページにリストを追加して非表示にすることができますが、クライアントスクリプト言語を使用してリストを作成し、現在のページにそのリストが存在しないようにすることができます。私はajxのアプローチを想定していますが、これを達成する方法は不明です。私はSP DesignerやVisual Studioを使用しないように制限されています。クライアントコード/ ajaxを備えたwebpartまたは単純なコンテンツエディタを使用してこれを達成できます。もしそうなら、どのように?Sharepointリストからプルダウンドロップダウン

答えて

1

Ribbon customizations - dropdown controls, Client Object Model and JavaScript Page Componentsをご覧ください。コードの多くはリボン用ですが、loadCurrentWebListsとgetDropdownItemsXmlはあなたがしようとしていることを示しています。 SharePoint 2010: Use ECMAScript to manipulate (Add/Delete/Update/Get) List ItemsOM model Javascriptもご覧ください。これらはリスト項目を処理しますが、リスト項目に合わせることができます。

+0

申し訳ありませんが、私はSP 2007を使用していますことを言及するのを忘れてしまった、ということバージョン – Jake

+0

上のECMAScriptアイデア作業も...ありえないリボンの最小要件はまだXP上のユーザのWindowsの7..Most、その第一リンクアイデア文句を言いません作業? – Jake

1

2007年にSPServicesライブラリをお試しいただけますか?

0

ここでは、私は、そのサイトへのアクセス権を持つすべてのユーザーのリストでユーザー情報リストのためにそれを使用する方法です。 select: function(e, ui){}は、オートコンプリートボックスから何かを選択するときに呼び出される関数です。

<link href="../css/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="../js/jquery.min.js"></script> 
<script type="text/javascript" src="../js/jquery-ui.js"></script> 
<script type="text/javascript" src="../js/jquery.SPServices-0.5.8.js"></script> 

<script type="text/javascript"> 
$(document).ready (function() { 
    $().SPServices({ 
     operation: "GetListItems", 
     async: true, 
     listName: "User Information List", 
     CAMLViewFields: "<ViewFields>" + 
      "<FieldRef Name='Title' />" + 
      "<FieldRef Name='MobilePhone' />" + 
      "<FieldRef Name='Picture' />" + 
      "<FieldRef Name='SPSResponsibility' />" + 
      "<FieldRef Name='Name' />" + 
      "</ViewFields>", 
     completefunc: AttachMembersAutoComplete 
    }); 
}); 

function AttachMembersAutoComplete(xmlResponse) { 
    var domElementArray = $("[nodeName=z:row]", xmlResponse.responseXML); 

    var dataMap = domElementArray.map(function() { 
     return { 
      value: $(this).attr('ows_Title'), 
      mobile: $(this).attr('ows_MobilePhone'), 
      picture: $(this).attr('ows_Picture'), 
      askmeabout: $(this).attr('ows_SPSResponsibility'), 
      name: $(this).attr('ows_Name') 
     }; 
    }); 

    var data = dataMap.get(); 

    $("input#inputMembersAutoComplete").autocomplete({ 
     source: data, 
     select: function(e, ui){ 

      window.alert(ui.item['askmeabout'] + "\n" + ui.item['name']); 

      if(ui.item['picture'] != undefined) { 
       var tmpPicture = ui.item['picture']; 
       var commaIndex = tmpPicture.indexOf(','); 
       tmpPicture = tmpPicture.substr(0,commaIndex); 
      }else{ 
       var tmpPicture = "/_layouts/images/person.gif"; 
      } 

      var tmpHTML = "<div>"; 
      tmpHTML += "<a href='/Person.aspx?accountname=" + ui.item['name'] + "' >"; 
      tmpHTML += "<p>"+ ui.item['value'] + " " + ui.item['mobile'] + "</p>"; 
      tmpHTML += "</a>"; 
      tmpHTML += "<img src='"+ tmpPicture + "' />"; 
      tmpHTML += "</div>"; 

      $("#person_info").html(tmpHTML); 
     } 
    }); 
} 
</script> 
関連する問題