Jag postat en annons för att sälja min bil i Bergen county, NJ på söndag kväll. Jag har fått flera förfrågningar via e-post kort därefter och stängt affären med någon på tisdag kväll.
Nästan för bra för att vara sant …
Jag postat en annons för att sälja min bil i Bergen county, NJ på söndag kväll. Jag har fått flera förfrågningar via e-post kort därefter och stängt affären med någon på tisdag kväll.
Nästan för bra för att vara sant …
Jag ändra inte avancerad sökning XSLT ofta, så det verkar som jag klättrar små kullar varje gång.
Min senaste lektion är detta: Fall frågor när du refererar till en kolumn. I min avancerad sökning, Jag har kolumner definieras som detta:
<rot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Kolumner>
<Kolumn Namn="GafTrainingInvoiceNumber" />
<Kolumn Namn="GafTrainingInvoiceLocation" />
<Kolumn Namn="Arbets-ID"/>
<Kolumn Namn="Rang"/>
<Kolumn Namn="Avdelning"/>
<Kolumn Namn="Författare"/>
<Kolumn Namn="Storlek"/>
<Kolumn Namn="Sökväg"/>
<Kolumn Namn="Beskrivning"/>
<Kolumn Namn="Skriva"/>
<Kolumn Namn="Platsnamn"/>
<Kolumn Namn="CollapsingStatus"/>
<Kolumn Namn="HitHighlightedSummary"/>
<Kolumn Namn="HitHighlightedProperties"/>
<Kolumn Namn="ContentClass"/>
<Kolumn Namn="IsDocument"/>
<Kolumn Namn="PictureThumbnailURL"/>
</Kolumner>
</rot>
Den XLST som visar faktura nummer och faktura platsen hade varit:
<p>
Utbildning fakturanummer: <XSL:värdet av Välj="GafTrainingInvoiceNumber"/>
<br></br>
Utbildning faktura läge: <XSL:värdet av Välj="GafTrainingInvoiceLocation"/>
</p>
Men, Välj måste referera till egenskapen i alla gemener, som i:
<p>
Utbildning fakturanummer: <XSL:värdet av Välj="gaftraininginvoicenumber"/>
<br></br>
Utbildning faktura läge: <XSL:värdet av Välj="gaftraininginvoicelocation"/>
</p>
Tills jag korrigerade som, Sökresultat visade etiketterna (dvs. "Utbildning fakturanummer") men inga data.
Affärsscenario:
Enterprise-wide genomförandet av MOSS för tillverkande företag med 30+ platser och några dussin företagens avdelningar.
Verksamhetsmål:
Trots en mängd företagsgrupper (avdelningar, platser, m.m.), vissa uppgifter bör behållas på en global nivå. Till exempel, en auktoritativ Ledar-lista av alla fysiska platser av företaget (t.ex. tillverkningsanläggningar, lagerställen, försäljningskontor) bör behållas på en central plats.
Tekniska Problem:
Företaget taxonomin genomfördes med flera webbplatssamlingar. Vi skulle ha velat skapa en auktoritär lista över fysiska platser i en anpassad lista som WSS. Sedan, När vi behövde ha en kolumn i en innehållstyp (eller en kolumn läggs till en lista eller doc dokumentbibliotek) som innehöll corporate platser, Vi vill skapa en kolumn med "lookup" datatyp och peka på det Ledar-lista.
Tyvärr, lookup datatyper måste komma åt en källista "lokalt" vilket innebär att vår auktoritär lista inte kan span webbplatssamlingar.
Teknisk lösning:
Genomföra en ny anpassad datatyp genomförs utifrån SPField och representeras av en DropDownList i Gränssnittet vars ListItems fylla i master WSS-listan.
Vi skapade en ny webbplatssamling som kallas "http://localhost/EnterpriseData". Det, Vi skapade en anpassad lista som heter "Corporate platser". Denna lista använder bara standard "titeln" fältet innehåller en lista över faktiska corporate platser.
Följer en flera diskreta steg för att skapa en anpassad datatyp i WSS. De är:
Här är koden för att:
offentliga klass XYZZYCorporateLocationField : SPFieldText
{
offentliga XYZZYCorporateLocationField
(SPFieldCollection fält, sträng typeName, sträng displayName)
: base(fält, typeName, displayName) { }
offentliga XYZZYCorporateLocationField
(SPFieldCollection fält, sträng displayName)
: base(fält, displayName) { }
offentliga åsidosätta BaseFieldControl FieldRenderingControl
{
få
{
BaseFieldControl kontroll = nya XYZZYCorporateLocationFieldControl();
kontroll. Fältnamn = Detta.InternalName;
återvändande kontroll;
} //få
} // fieldrenderingcontrol
offentliga åsidosätta sträng GetValidatedString(objekt värde)
{
om (Detta.Krävs || värdet. ToString().Är lika med(Sträng.Tom))
{
kasta nya SPFieldValidationException ("Avdelningen är inte tilldelad.");
}
återvändande base.GetValidatedString(värde);
} // getvalidatedstring
} // XYZZYCorporateLocation
offentliga klass XYZZYCorporateLocationFieldControl : BaseFieldControl
{
skyddade DropDownList XYZZYCorporateLocationSelector;
skyddade åsidosätta sträng DefaultTemplateName
{
få
{
återvändande "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
offentliga åsidosätta objekt Värde
{
få
{
EnsureChildControls();
återvändande Detta.XYZZYCorporateLocationSelector. SelectedValue;
} // få
Ange
{
EnsureChildControls();
Detta.XYZZYCorporateLocationSelector.SelectedValue = (sträng)Detta.ItemFieldValue;
} // Ange
} // åsidosätta objektet värdet
skyddade åsidosätta void CreateChildControls()
{
om (Detta.Fältet == null || Detta.ControlMode == SPControlMode.Display)
återvändande;
base.CreateChildControls();
Detta.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer. FindControl("XYZZYCorporateLocationSelector");
om (Detta.XYZZYCorporateLocationSelector == null)
kasta nya Undantag("FEL: Kan inte ladda. ASCX fil!");
om (!Detta.IsPostBack sida.)
{
med hjälp av (SPSite plats = nya SPSite("http://localhost/enterprisedata"))
{
med hjälp av (SPWeb Web = webbplats. OpenWeb())
{
SPList currentList = web. Listor["Corporate platser"];
foreach (SPItem XYZZYCorporateLocation i currentList.Items)
{
om (XYZZYCorporateLocation["Rubrik"] == null) «««;
sträng Ämneskod;
Ämneskod = XYZZYCorporateLocation["Rubrik"].ToString();
Detta.XYZZYCorporateLocationSelector.Items.Add
(nya ListItem(Ämneskod, Ämneskod));
} // foreach
} // med hjälp av spweb web = site.openweb()
} // webbplatsen för spsite = nya spsite("http://localhost/enterprisedata")
} // om inte ett återanslående
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Ovanstående kod i princip implementerar logik för att fylla DropDownList med värden från WSS anpassade listan ligger på http://localhost/enterprisedata och heter "företagens avdelningar".
Jag definierade båda klasserna i en enda .cs fil, sammanställt det och Lägg den i den globala Sammansättningscachen (stark krävs, Självklart).
<%@ Kontroll Språk= "C#" Ärver="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, kultur = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Alltid" %>
<%@ Registrera dig TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Församling="Microsoft.SharePoint, Version = 12.0.0.0, Kultur = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Registrera dig TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Församling="Microsoft.SharePoint, Version = 12.0.0.0, Kultur = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= "XYZZYCorporateLocationFieldControl" Runat= "server">
<Mall>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" Runat= "server" />
</Mall>
</SharePoint:RenderingTemplate>
Ovanstående sparas in c:\programmet delade filerMicrosoft sharedweb server extensions12controltemplates.
<?XML version="1.0" kodning="UTF-8" ?>
<FieldTypes>
<FieldType>
<Fältet Namn="TypeName">CorporateLocations</Fältet>
<Fältet Namn="ParentType">Texten</Fältet>
<Fältet Namn="TypeDisplayName">Corporate platser</Fältet>
<Fältet Namn="TypeShortDescription">Alla XYZZY Corporate platser inklusive tillverkning eller andra anläggningar.</Fältet>
<Fältet Namn="UserCreatable">SANNA</Fältet>
<Fältet Namn="ShowInListCreate">SANNA</Fältet>
<Fältet Namn="ShowInDocumentLibraryCreate">SANNA</Fältet>
<Fältet Namn="ShowInSurveyCreate">SANNA</Fältet>
<Fältet Namn="ShowInColumnTemplateCreate">SANNA</Fältet>
<Fältet Namn="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = b0b19e85410990c4</Fältet>
<RenderPattern Namn="DisplayPattern">
<Switch>
<Expr>
<Kolumn />
</Expr>
<Fallet Värde=""/>
<Standard>
<HTML>
<![CDATA[<span style = "color:Röd"><b>]]>
</HTML>
<Kolumn SubColumnNumber="0" HTMLEncode="SANNA"/>
<HTML><![CDATA[</b></Spänn>]]></HTML>
</Standard>
</Switch>
</RenderPattern>
</FieldType>
</FieldTypes>
XML-filen lägger till en anpassad datatyp till WSS "bibliotek" och matchar det upp mot GAC hade församlingen.
Efter att ha flyttat alla dessa bitar på plats, iisreset på servern och det bör alla börja arbeta fint.
Ytterligare en kategori: CAML
Här är en stor utstationering av en Karl som heter "craig" på en teknik för att hitta CAML definitioner för fältet innehållstyper som bygger på verkligt levande definitioner från en webbplats.
Hans inlägg säger allt. I korthet:
Ytterligare kategorier: Visual Studio 2005
Aktivera användbara intellisense för funktioner, element, etc i visual studio 2005:
IntelliSense är nu aktiverat för XML-dokumentet.
Se Här Mer information om detta ämne och instruktioner om hur du automatiskt associera WSS intellisense med alla XML-filer.
Jag tog och klarade ovan nämnda testet i morse. Jag hittade det testet för att bli svårt och rättvis.
Det finns en relativ brist på information om denna examen på webben. Jag vet inte varför.
Jag inte kommer att naturligtvis få in på några detaljer om testet jag tog, men jag tror jag kan lugnt säga följande:
Det visar vad du behöver veta för att klara tentan och det är, IMO, mycket exakt.
</slutet>Prenumerera på min blogg!
Ytterligare en kategori: InfoPath
Sammanfattning: En InfoPath 2007 formuläret distribueras till en MOSS server ger en drop-down lista över leverantörer knuten till en anpassad lista som MOSS. På att välja en leverantör, regler tilldela värden till en handfull textfält som säljare namn, Adress, staden, staten, zip och telefon. Prestanda är hemsk. Vi märker att prestanda blir värre (icke-linjärt) för varje ytterligare fält uppdatera vi detta sätt. Dvs., om vi bara uppdatera namnet säljare, Det tar [x] tid. Om vi uppdaterar säljare, Adress1, Adress2, staden, staten, zip, Det tar 10 gånger längre.
Lösning: Skriva en webbtjänst (exempelkod kan hittas Här) som skickas i en leverantör och det återgår tillbaka till leverantörsinformation. Sedan, tilldela fält detta sätt. Även om detta verkar alltför långsam, Det fanns inga märkbara skillnader i prestanda när vi tilldelats 1 fältet kontra 8 fält. Som en extra bonus, användare få en cool "att kontakta servern" Cylon effekt medan de väntar på formuläret att åberopa och konsumera tjänsten resultat.
UPPDATERING: Vi fastställt aldrig orsaken till problemet och det aldrig ytan igen.
Vi märker under genomförandet av en utveckling som plötsligt, två användare kan inte komma åt en webbplatssamling. Dessa konton kan autentisera till huvudsidan, men när jag försöker komma åt en viss webbplatssamling, de får bara en blank skärm. Inga fel visas, bara en vit tom sida.
Vi logga in som en webbplats samling admin och försöker lägga till en av de användarna som en webbplats admin och den här gången, på att trycka på "OK", Vi får detta meddelande:
Undantag uppstod. (Undantag från HRESULT: 0x 80020009 (DISP_E_EXCEPTION))
Vi tillbringade en tid forska detta och tyvärr, kom inte upp med något användbart. Det fanns vissa meddelanden i diagnostiklogg, men det var svårt att exakt korrelera dem med denna fråga.
I slutet, Vi tar bort webbplatssamlingen och återskapas det och som löste det.
Om jag lista ut vad som orsakade detta i framtiden, Jag kommer uppdatera detta inlägg.