« convert int to hex string (T-SQL) | Main| Ja ja der Sonntag Abend :-) »

Manchmal, aber nur manchmal wäre es sehr nett ...

0
Kategorie   

wenn man irgendwie auf ein bestimmtes Item in einer Sharepoint Liste mit JavaScript zugreifen könnte.
Die meisten JS-Frameworks Prototype, EXTJS usw. verstehen ja JSON.

Was liegt also näher, als die Möglichkeit zu schaffen, ein bestimmtes Item in JSON wandeln zu dürfen

Ich habe es wie folgt gelöst:

ASPX-Seite bauen, welche als Parameter die Site, Web, Liste und ID des Elementes bekommt.
Dieses liefert in JSON den StaticName, den Displayname und den Value...

Die StaticNames habe ich mit einem fn_ vor dem eigentlichen StaticName markiert.
Als Wert z.B. fn_Title bekommt dieses dann den "DisplayName" z.B.: Vertrag.
Im Item Vertrag kommt dann der Wert.

Am Ende sieht das ungefähr so aus:
{ fn_Title:'Vertrag',Vertrag:'17/20' }

Hier der Code:

<%@ PageLanguage="C#" %>
<%@ Importnamespace="Microsoft.SharePoint"%>
<script runat="server">

    protected overridevoid OnLoad(EventArgs e) {
        if (!IsPostBack) {
           Response.ContentType = "application/json";
           string sSite = Request.QueryString"site";
           string sWeb = Request.QueryString"web";
           string sList = Request.QueryString"list";
           string sID = Request.QueryString"id";
           using (SPSite site = new SPSite(sSite)) {
              using (SPWeb web = site.AllWebs[sWeb]) {
                 SPList list = web.Lists[sList];
                 SPListItem li = list.GetItemById(int.Parse(sID));                
                 SPFieldCollection fc = li.Fields;
                 bool bFirst = true;
                 Response.Write("{");
                 foreach (SPField field in fc) {                    
                    if (bFirst) {
                       bFirst = false;                      
                    } else {
                       Response.Write(",");
                    }
                    Response.Write("fn_" + field.StaticName+":'");
                    Response.Write(field.Title + "',");
                     Response.Write(field.StaticName+":'");
                     if (li[field.Title]==null) {
                        Response.Write("'");
                     } else {
                        Response.Write(li[field.Title].ToString()+"'");
                     }                    
                 }
                 Response.Write("}");
              }
           }
        }
    }    
   
</script>

Gruß JJR
P.S.: Den Content-Type mußte ich umsetzen, da die JS-Frameworks evtl. eine Prüfung des Content-Types vornehmen

Mach einen Kommentar

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2