Olen lähetetty luokiteltu mainoksen myydä autoni Bergen County, NJ sunnuntai-iltana. Olen saanut useita tiedusteluja sähköpostitse pian sen jälkeen ja päätti käsitellä jonkun kanssa tiistai-iltana.
Melkein liian hyvältä ollakseen totta …
Olen lähetetty luokiteltu mainoksen myydä autoni Bergen County, NJ sunnuntai-iltana. Olen saanut useita tiedusteluja sähköpostitse pian sen jälkeen ja päätti käsitellä jonkun kanssa tiistai-iltana.
Melkein liian hyvältä ollakseen totta …
Älä muuta haku XSLT usein, niin se tuntuu Olen kiipeilyä pieniä mäkiä aina.
Uusin opetus on tämä: Tapauksessa asiat sarakkeeseen viittaaminen. Tarkennettu haku, Olen otsakkeissa määritelty tämä:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Sarakkeet>
<Sarake Nimi="GafTrainingInvoiceNumber" />
<Sarake Nimi="GafTrainingInvoiceLocation" />
<Sarake Nimi="Työtunnus"/>
<Sarake Nimi="Sijoitus"/>
<Sarake Nimi="Otsikko"/>
<Sarake Nimi="Tekijä"/>
<Sarake Nimi="Kokoa"/>
<Sarake Nimi="Polku"/>
<Sarake Nimi="Kuvaus"/>
<Sarake Nimi="Kirjoitus"/>
<Sarake Nimi="Sivuston nimi"/>
<Sarake Nimi="CollapsingStatus"/>
<Sarake Nimi="HitHighlightedSummary"/>
<Sarake Nimi="HitHighlightedProperties"/>
<Sarake Nimi="ContentClass"/>
<Sarake Nimi="IsDocument"/>
<Sarake Nimi="PictureThumbnailURL"/>
</Sarakkeet>
</root>
XSLT, joka näyttää laskun numero ja laskun paikalla ollut:
<p>
Koulutus laskunumero: <XSL:arvo Valitse="GafTrainingInvoiceNumber"/>
<br></br>
Laskun opiskelupaikka: <XSL:arvo Valitse="GafTrainingInvoiceLocation"/>
</p>
Kuitenkin, Valitse on viitattava kaikki pienellä, kuten:
<p>
Koulutus laskunumero: <XSL:arvo Valitse="gaftraininginvoicenumber"/>
<br></br>
Laskun opiskelupaikka: <XSL:arvo Valitse="gaftraininginvoicelocation"/>
</p>
Kunnes korjasin että, Hakutulokset osoitti tarrat (ts. "Koulutus laskunumero") mutta ei tietoja.
Business skenaario:
Yrityksen laajuinen toteuttamisesta MOSS valmistajayritys, jolla 30+ sivustojen ja muutamia kymmeniä yrityksen yksiköt.
Liiketoiminnan tavoite:
Huolimatta monenlaisia yritysten ryhmille (osastot, sijainnit, jne), tietyt tiedot olisi säilytettävä maailmanlaajuisella tasolla. Esimerkiksi, Kaikki fyysinen sijainti yrityksen arvovaltainen pääluettelo (virrankatkaisu. tuotantolaitokset, varastosijainteja, myyntikonttorit) olisi säilytettävä keskeisellä paikalla.
Tekninen ongelma:
Yrityksen taksonomia on toteutettu useita sivustokokoelmia. Olisimme halunneet luoda arvovaltainen luettelo sijainneissa WSS luettelon. Sitten, kun tarvitsimme sarakkeen sisällön tyyppi (tai sarake lisätään luettelon tai doc) joka sisälsi yritysten tiloissa, Haluamme luoda sarakkeen "valinta" tietotyypin ja kohta siihen.
Valitettavasti, haku tietotyypit on pääsy lähdeluettelon "paikallisesti" eli arvovaltainen listalta ei voi ulottua sivustokokoelmat.
Tekninen ratkaisu:
Toteuttaa uuden mukautetun tietotyypin täytäntöön perustuu SPField ja edustettuina DropDownList UI joiden ListItems täyttää WSS pääluettelo.
Olemme luoneet uuden sivustokokoelman kutsutaan "http://localhost/EnterpriseData". Siellä, Olemme luoneet luettelon nimeltään "Paikoissa". Tässä luettelossa käytetään vain standardi "otsikko" kenttä sisältää luettelon yritysten sijainnit.
Yksi seuraa useita erillisiä vaiheita voit luoda mukautetulle tietotyypille WSS. Ne ovat:
Tässä on koodi, että:
yleiset luokan XYZZYCorporateLocationField : SPFieldText
{
yleiset XYZZYCorporateLocationField
(SPFieldCollection-asetus kentät, merkkijono typeName, merkkijono displayName)
: Base(kentät, typeName, displayName) { }
yleiset XYZZYCorporateLocationField
(SPFieldCollection-asetus kentät, merkkijono displayName)
: Base(kentät, displayName) { }
yleiset Ohita BaseFieldControl FieldRenderingControl
{
saada
{
BaseFieldControl ohjaus = Uusi XYZZYCorporateLocationFieldControl();
ohjausobjekti. Kentän nimi = Tämä.InternalName;
paluu valvonta;
} //saada
} // fieldrenderingcontrol
yleiset Ohita merkkijono GetValidatedString(objekti arvo)
{
Jos (Tämä.Tarvitaan || arvo. Ominaisuuden ToString().Vastaa(Merkkijono.Tyhjä))
{
heittää Uusi SPFieldValidationException ("Osasto ei ole määritetty.");
}
paluu Base.GetValidatedString(arvo);
} // getvalidatedstring
} // XYZZYCorporateLocation
yleiset luokan XYZZYCorporateLocationFieldControl : BaseFieldControl
{
suojattu DropDownList XYZZYCorporateLocationSelector;
suojattu Ohita merkkijono DefaultTemplateName
{
saada
{
paluu "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
yleiset Ohita objekti Arvo
{
saada
{
EnsureChildControls();
paluu Tämä.XYZZYCorporateLocationSelector.SelectedValue;
} // saada
Määritä
{
EnsureChildControls();
Tämä.XYZZYCorporateLocationSelector.SelectedValue = (merkkijono)Tämä.ItemFieldValue;
} // Määritä
} // ohittaa objektin arvo
suojattu Ohita mitättömäksi Kohdetta CreateChildControls()
{
Jos (Tämä.Kentän == Null || Tämä.ControlMode == SPControlMode.Näyttö)
paluu;
Base.Kohdetta CreateChildControls();
Tämä.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer. FindControl("XYZZYCorporateLocationSelector");
Jos (Tämä.XYZZYCorporateLocationSelector == Null)
heittää Uusi Poikkeus("VIRHE: Ei voi ladata. ASCX-tiedostossa!");
Jos (!Tämä.IsPostBack sivu.)
{
käyttäminen (SPSite sivusto = Uusi SPSite("http://localhost/enterprisedata"))
{
käyttäminen (SPWeb Web = sivusto. OpenWeb())
{
SPList currentList = web. Luettelot["Yritysten tiloissa"];
foreach (SPItem XYZZYCorporateLocation Tässä currentList.Items)
{
Jos (XYZZYCorporateLocation["Otsikko"] == Null) Jatka;
merkkijono Asiasana;
Asiasana = XYZZYCorporateLocation["Otsikko"].Ominaisuuden ToString();
Tämä.XYZZYCorporateLocationSelector.Items.Add
(Uusi Luettelokohde(Asiasana, Asiasana));
} // foreach
} // käyttämällä spweb web = site.openweb()
} // spsite-sivuston = uusi spsite("http://localhost/enterprisedata")
} // Jos ei takaisinlähetys
} // Kohdetta CreateChildControls
} // XYZZYCorporateLocationFieldControl
Edellä koodi periaatteessa toteuttaa logiikan asuttavat DropDownList arvoilla WSS mukautetun luettelon osoitteessa http://localhost/enterprisedata ja nimetty "yrityksen yksiköt".
Molempien luokkien määriteltyjen yhden .cs tiedosto, kootaan se ja laita se GAC (vahva tarvitaan, Tietysti).
<%@ Valvonta Kieli= C#" Perii="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, kulttuuri = neutraali,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Aina" %>
<%@ Rekisteröidy TagPrefix-määritettä= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Kokoonpano="Microsoft.SharePoint, Version = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Rekisteröidy TagPrefix-määritettä= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Kokoonpano="Microsoft.SharePoint, Version = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:Ohjausobjektimallin TUNNUS= "XYZZYCorporateLocationFieldControl" RUNAT= "palvelin">
<Malli>
<ASP:DropDownList TUNNUS= "XYZZYCorporateLocationSelector" RUNAT= "palvelin" />
</Malli>
</SharePoint:Ohjausobjektimallin>
Edellä on tallennettu c:\ohjelma filescommon filesmicrosoft sharedweb server extensions12controltemplates.
<?XML versio="1.0" koodaus="UTF-8" ?>
<FieldTypes>
<FieldType>
<Kenttä Nimi="TypeName">CorporateLocations</Kenttä>
<Kenttä Nimi="ParentType">Teksti</Kenttä>
<Kenttä Nimi="TypeDisplayName">Yritysten tiloissa</Kenttä>
<Kenttä Nimi="TypeShortDescription">Kaikki XYZZY paikoissa kuten valmistus- tai.</Kenttä>
<Kenttä Nimi="UserCreatable">TOTTA</Kenttä>
<Kenttä Nimi="ShowInListCreate">TOTTA</Kenttä>
<Kenttä Nimi="ShowInDocumentLibraryCreate">TOTTA</Kenttä>
<Kenttä Nimi="ShowInSurveyCreate">TOTTA</Kenttä>
<Kenttä Nimi="ShowInColumnTemplateCreate">TOTTA</Kenttä>
<Kenttä Nimi="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Versio = tulee ilmoittaa yleisessä muodossa, Culture = neutral, PublicKeyToken = b0b19e85410990c4</Kenttä>
<RenderPattern Nimi="DisplayPattern">
<Kytkin>
<Lauseke>
<Sarake />
</Lauseke>
<Tapauksessa Arvo=""/>
<Oletus>
<HTML>
<![CDATA[<span style = "color:Punainen"><b>]]>
</HTML>
<Sarake SubColumnNumber="0" HTMLEncode="TOTTA"/>
<HTML><![CDATA[</b></span>]]></HTML>
</Oletus>
</Kytkin>
</RenderPattern>
</FieldType>
</FieldTypes>
Tämä XML-tiedosto lisää mukautetulle tietotyypille WSS "Kirjasto" ja vastaa sen vastaan GAC oli kokoonpano.
Muutettuaan Nämä bitit paikalleen, iisreset palvelimella ja se pitäisi aluksi toimi hienosti.
Lisää luokka: CAML
Täällä on erinomainen asettaa mies nimeltä "craig" tekniikka löytää CAML määritelmät kentän sisältölajien perustuu pois live määritelmät sivustosta.
Hänen lähettämistä kertoo kaiken. Lyhyesti:
Muita luokkia: Visual Studio 2005
Jotta hyödyllisiä intellisense ominaisuudet, elementit, jne visual studiossa 2005:
IntelliSense on nyt otettu kyseisen XML-asiakirjan.
Ks. Täällä Lisätietoja tästä aiheesta sekä ohjeita siitä, miten liittää automaattisesti WSS intellisense XML-tiedosto.
Otin ja edellä mainittu testi tänä aamuna. Löysin vaikea ja tentti.
Suhteellisen niukasti tietoa tämän tentti Webissä. En ole varma miksi.
En ilmeisesti aio yksityiskohtiin noin otin tentti, mutta voin sanoa seuraavasti:
Siinä luetellaan, mitä sinun tarvitsee tietää siirtää tentti ja, IMO: N, erittäin tarkka.
</loppu>Tilaa blogiin!
Lisää luokka: InfoPath
Yhteenveto: InfoPath 2007 MOSS-palvelimen käyttöön lomakkeen sisältää mukautetun MOSS-luetteloon sidottua toimittajien avattavasta. Kun valitset Toimittaja, sääntöjen määrittäminen kenttien arvot kourallinen tekstikentät, kuten myyjä nimi, osoite, Kaupunki, valtio, zip- ja puhelin. Suorituskyky on hirvittävä. Me huomaamme, että suorituskyky huononee (luettavaksi jΣrjestyksessΣ) Lisää kenttien päivitämme tällä tavoin. Eli, Jos olemme juuri päivittää myyjä-nimi, se kestää [x] aika. Jos päivitämme myyjä, osoite1, Osoite2, Kaupunki, valtio, zip, se kestää 10 kertaa pidempään.
Ratkaisu: Kirjoita web-palveluun (mallikoodia löydät Täällä) jotka on välitetty nimissä toimittaja ja se palauttaa takaisin toimittajan tiedot. Sitten, Määritä kentät tällä tavalla. Vaikka tämä vaikuttaa liian hidas, ei ollut discernable eroa suorituskyvyn, kun olemme määritetty 1 kentän funktiona 8 kentät. Tallennusvälineinä, käyttäjät saavat jäähdytetään "yhteyttä palvelimeen" Cylon vaikutus odottaessaan kutsua ja kuluttaa palvelun lomakkeen tulokset.
PÄIVITYS: Emme koskaan päättänyt perussyy ongelman ja se koskaan pinta jälleen.
Huomaamme täytäntöönpanon edistyminen asema aikana että yhtäkkiä, kaksi käyttäjät eivät voi käyttää sivustokokoelman. Nämä tilit voi tarkistaa sivuston tärkeimmät, mutta kun yrität käyttää tietyn sivustokokoelman, he kohtuullinen panna ilmeetön irtoseinä. Virheitä ei näy, valkoinen tyhjä sivu.
Kirjaudu sisään sivustokokoelman järjestelmänvalvoja ja yrittää lisätä yksi niistä Siteadmin ja tällä kertaa, Kun painat "OK", Tämä sanoma:
Poikkeus. (HRESULT poikkeus: 0x 80020009 (DISP_E_EXCEPTION))
Vietimme jonkin aikaa tutkia tätä ja valitettavasti, ei keksiä mitään hyötyä. Tarkasteltava oli joitakin viestejä, mutta se oli vaikea tarkalleen korreloivan asiaa.
Lopulta, sivustokokoelman poistamista ja luodaan uudelleen ja että ratkaisimme sen.
Jos voin selvittää, mikä aiheutti tämän tulevaisuudessa, I päivittää tämän postitse.