Bergen County arabamı satmak için bir gizli reklam tarihinde gönderildi., NJ Pazar gecesi. Kısa bir süre sonra çeşitli sorular e-posta yoluyla alınan ve Salı gecesi biriyle anlaşma kapalı.
Gerçek olamayacak kadar iyi …
Bergen County arabamı satmak için bir gizli reklam tarihinde gönderildi., NJ Pazar gecesi. Kısa bir süre sonra çeşitli sorular e-posta yoluyla alınan ve Salı gecesi biriyle anlaşma kapalı.
Gerçek olamayacak kadar iyi …
Ben çok sık gelişmiş arama XSLT değiştirmeyin, Ben her zaman küçük tepeleri tırmanma gibi görünüyor bu yüzden.
Bu benim yeni derstir: Bir sütuna başvururken durumda önemli. Gelişmiş arama, I-si olmak bu kadar tanımlanmış sütunlar:
<kök xmlns:XSI="http://www.w3.org/2001/XMLSchema-instance">
<Sütunlar>
<Sütun Adı="GafTrainingInvoiceNumber" />
<Sütun Adı="GafTrainingInvoiceLocation" />
<Sütun Adı="Çalışma kimliği"/>
<Sütun Adı="Sırası"/>
<Sütun Adı="Başlık"/>
<Sütun Adı="Yazar"/>
<Sütun Adı="Boyutu"/>
<Sütun Adı="Yolu"/>
<Sütun Adı="Açıklama"/>
<Sütun Adı="Yazma"/>
<Sütun Adı="Siteadı"/>
<Sütun Adı="CollapsingStatus"/>
<Sütun Adı="HitHighlightedSummary"/>
<Sütun Adı="HitHighlightedProperties"/>
<Sütun Adı="ContentClass"/>
<Sütun Adı="IsDocument"/>
<Sütun Adı="PictureThumbnailURL"/>
</Sütunlar>
</kök>
Fatura numarası ve fatura konumu görüntüler XLST olmuştu:
<p>
Eğitim fatura numarası: <XSL:value-of seçin="GafTrainingInvoiceNumber"/>
<br></br>
Eğitim fatura yeri: <XSL:value-of seçin="GafTrainingInvoiceLocation"/>
</p>
Ancak, Hepsi küçük harf özelliğinde başvurmak Seç vardır, olarak:
<p>
Eğitim fatura numarası: <XSL:value-of seçin="gaftraininginvoicenumber"/>
<br></br>
Eğitim fatura yeri: <XSL:value-of seçin="gaftraininginvoicelocation"/>
</p>
Bu düzeltilmiş kadar, Arama sonuçları etiketleri gösterdi (Yani. "Eğitim fatura numarası") veri yok ama.
İş senaryosu:
MOSS kurumsal çapta uygulanması için üretim şirketi ile 30+ siteler ve birkaç düzine şirket bölümler.
İş hedefi:
Çok sayıda iş grupları rağmen (bölümler, Mekanlar, vb), belirli verileri genel bir düzeyde muhafaza edilmelidir. Örneğin, şirketin tüm fiziksel konumlar bir yetkili ana listesi (e.g. üretim tesisleri, ambar konumunuz, satış ofisleri) Merkezi bir konumda muhafaza edilmelidir.
Teknik bir sorun:
Kurumsal sınıflandırma kullanarak birden çok site koleksiyonlarındaki uygulanmıştır. Biz isterdi özel WSS liste içinde fiziksel konumlar yetkili listesi oluşturmak için. O zaman, Ne zaman biz bir içerik türüne sahip bir sütun için gerekli (veya bir liste veya doktor kütüphanesine eklenir sütun) Bu kurumsal yerlerde bulunan, "arama kullanarak bir sütun oluşturmak" veri türü ve nokta bu ana listesi.
Ne yazık ki, Arama veri türleri bir kaynak listesi "yerel olarak erişmeniz gerekir" yetkili listemize site koleksiyonları dağıtılamaz anlamı.
Teknik çözüm:
Yeni bir özel veri türü temel alınarak SPField hayata ve temsil edilen bir DropDownList kimin ListItems ana WSS listeden doldurmak UI alet.
Adı verilen yeni bir site koleksiyonu hazırlandı "http://localhost/EnterpriseData". Orada, "Kurumsal yerlerde" adında özel bir liste oluşturdu. Bu liste, sadece standart "başlığını kullanır" gerçek şirket konumların listesini içeren alan.
Bir WSS içindeki özel veri türü oluşturmak için birkaç ayrı adımları takip. Onlar:
İşte bunun için kod:
Genel sınıf XYZZYCorporateLocationField : SPFieldText
{
Genel XYZZYCorporateLocationField
(SPFieldCollection alanları, dize typeName, dize displayName)
: Bankası(alanları, typeName, displayName) { }
Genel XYZZYCorporateLocationField
(SPFieldCollection alanları, dize displayName)
: Bankası(alanları, displayName) { }
Genel geçersiz kılma BaseFieldControl FieldRenderingControl
{
Al
{
BaseFieldControl kontrol = Yeni XYZZYCorporateLocationFieldControl();
Denetim. FieldName = Bu.InternalName;
geri dönmek Denetim;
} //Al
} // fieldrenderingcontrol
Genel geçersiz kılma dize GetValidatedString(Nesne değer)
{
Eğer (Bu.Gerekli || değeri. ToString().Eşittir(Dize.Boş))
{
atmak Yeni SPFieldValidationException ("Bölümü atanmış değil.");
}
geri dönmek Bankası.GetValidatedString(değer);
} // getvalidatedstring
} // XYZZYCorporateLocation
Genel sınıf XYZZYCorporateLocationFieldControl : BaseFieldControl
{
korumalı DropDownList XYZZYCorporateLocationSelector;
korumalı geçersiz kılma dize DefaultTemplateName
{
Al
{
geri dönmek "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
Genel geçersiz kılma Nesne Değer
{
Al
{
EnsureChildControls();
geri dönmek Bu.SelectedValue XYZZYCorporateLocationSelector.;
} // Al
ayarla
{
EnsureChildControls();
Bu.XYZZYCorporateLocationSelector.SelectedValue = (dize)Bu.ItemFieldValue;
} // ayarla
} // nesne değeri geçersiz
korumalı geçersiz kılma geçersiz CreateChildControls()
{
Eğer (Bu.Alan == NULL || Bu.ControlMode == SPControlMode.Görüntüleme)
geri dönmek;
Bankası.CreateChildControls();
Bu.XYZZYCorporateLocationSelector =
(DropDownList)FindControl TemplateContainer.("XYZZYCorporateLocationSelector");
Eğer (Bu.XYZZYCorporateLocationSelector == NULL)
atmak Yeni Özel durum("HATASI: Yüklenemiyor. ASCX dosya!");
Eğer (!Bu.IsPostBack sayfa.)
{
kullanma (SPSite Site = Yeni SPSite("http://localhost/enterprisedata"))
{
kullanma (SPWeb Web sitesi =. OpenWeb())
{
SPList.Update() currentList web =. Listeler["Kurumsal yerlerde"];
foreach (SPItem XYZZYCorporateLocation içinde currentList.Items)
{
Eğer (XYZZYCorporateLocation["Başlığı"] == NULL) devam etmek;
dize Title;
Title = XYZZYCorporateLocation["Başlığı"].ToString();
Bu.XYZZYCorporateLocationSelector.Items.Add
(Yeni ListItem(Title, Title));
} // foreach
} // SPWeb web kullanarak site.openweb =()
} // SPSite sitesini kullanarak yeni spsite =("http://localhost/enterprisedata")
} // Eğer değilse geri gönderme
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Yukarıdaki kod, temelde DropDownList WSS özel listesinde yer alan değer ile yerleştirmek için mantığını uygular http://localhost/enterprisedata ve adlandırılmış "Kurumsal bölümler".
Bir tek .cs dosyası her iki sınıf tanımlanan, Bu derlenmiş ve GAC içine koy (güçlü gerekli, Elbette).
<%@ Denetim Dil"C# =" Devralır="Microsoft.SharePoint.Portal.serveradmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Sürüm 12.0.0.0, kültür = bağımsız =,PublicKeyToken = 71e9bce111e9429c" compilationMode"Her zaman =" %>
<%@ Üye ol Tagprefix"wssawc =" Namespace="Microsoft.SharePoint.WebControls" Derleme="Microsoft.SharePoint, Sürüm 12.0.0.0 =, Kültür tarafsız =, PublicKeyToken = 71e9bce111e9429c" %> <%@ Üye ol Tagprefix"SharePoint =" Namespace="Microsoft.SharePoint.WebControls" Derleme="Microsoft.SharePoint, Sürüm 12.0.0.0 =, Kültür tarafsız =, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate KİMLİĞİ"XYZZYCorporateLocationFieldControl =" runat= "sunucu">
<Şablon>
<ASP:DropDownList KİMLİĞİ"XYZZYCorporateLocationSelector =" runat= "sunucu" />
</Şablon>
</SharePoint:RenderingTemplate>
Yukarıda c kaydedilir:\Program filescommon filesmicrosoft sharedweb server extensions12controltemplates.
<?XML Sürüm="1.0" kodlama="UTF-8" ?>
<FieldTypes>
<FieldType>
<Alan Adı="TypeName">CorporateLocations</Alan>
<Alan Adı="ParentType">Metin</Alan>
<Alan Adı="TypeDisplayName">Kurumsal yerlerde</Alan>
<Alan Adı="TypeShortDescription">Üretim veya diğer özellikleri de dahil olmak üzere tüm XYZZY kurumsal yerlerde.</Alan>
<Alan Adı="UserCreatable">GERÇEK</Alan>
<Alan Adı="ShowInListCreate">GERÇEK</Alan>
<Alan Adı="ShowInDocumentLibraryCreate">GERÇEK</Alan>
<Alan Adı="ShowInSurveyCreate">GERÇEK</Alan>
<Alan Adı="ShowInColumnTemplateCreate">GERÇEK</Alan>
<Alan Adı="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Sürüm 1. 0 =, Kültür tarafsız =, PublicKeyToken = b0b19e85410990c4</Alan>
<RenderPattern Adı="DisplayPattern">
<Anahtarı>
<İfade>
<Sütun />
</İfade>
<Dava Değer=""/>
<Varsayılan>
<HTML>
<![CDATA[<Stil span = "renk:Kırmızı"><b>]]>
</HTML>
<Sütun SubColumnNumber="0" HTMLEncode="GERÇEK"/>
<HTML><![CDATA[</b></yayılma>]]></HTML>
</Varsayılan>
</Anahtarı>
</RenderPattern>
</FieldType>
</FieldTypes>
Bu XML dosyası özel veri türü WSS "kütüphane ekler." ve GAC karşı eşleşen derleme vardı.
Bu bitler yerine taşıdıktan sonra, iisreset server ve bu güzel çalışma tüm başlamak gerekir.
Ek Kategori: CAML
Burada "craig adında bir adam tarafından büyük bir gönderme" kapalı bir siteden canlı tanımları dayalı alan içerik türleri için CAML tanımlarını bulmak için bir teknik.
Onun nakil bütün olduğunu anlatıyor.. Kısaca:
Ek kategoriler: Visual Studio 2005
Yararlı IntelliSense özelliklerini etkinleştirmek için, öğeleri, Visual studio, vb 2005:
IntelliSense Şimdi bu XML belgesi için etkinleştirildi.
Bkz: Burada daha fazla bu konuda ve talimatlar için nasıl yönergeler için otomatik olarak WSS IntelliSense herhangi bir XML dosyası ile ilişkilendirmek için.
Aldı ve yukarıda belirtilen test bu sabah geçti. Sınav zor ve adil olmak bulundu.
Bu sınav Web'de modülleri göreli bir eksiklik olduğunu. Im'değil emin niçin.
Açıkçası ben sınavı hakkında herhangi bir ayrıntılı almazsınız, Ama şunları söyleyebiliriz düşünüyorum:
Sınav ve onun geçmek için bilmeniz gerekenler listelenmiştir, IMO, çok doğru.
</sonunda>Benim blog abone!
Ek Kategori: InfoPath
Özet: InfoPath 2007 MOSS sunucuya dağıtmak için form özel yosun listeye bağlı satıcılar aþaðý açýlan listesini sağlar. Satıcı seçme üzerine, kurallar, metin alanları satış temsilcisi adı gibi bir avuç alan değerlerini atayın., Adres, Şehir, Devlet, zip ve telefon. Performans korkunç. Biz fark performans kötüleşiyor (Doğrusal olmayan bir biçimde) her ek alan için biz bu şekilde güncelleyin.. Yani, Eğer sadece satış temsilcisi adı güncelleştirin, o alır [x] bir süre. Satış temsilcisi güncelleştirirseniz, Adres1, Adres2, Şehir, Devlet, ZIP, o alır 10 kat uzun.
Çözüm: Bir web servisi yazma (örnek kodu bulabilirsiniz Burada) bir satıcı adına geçti ve satıcı tafsilât geri döndürür. O zaman, Bu şekilde alanları atama. Bu da görünse de yavaş, Biz atanmış hiçbir discernable fark performans vardı 1 alan karşı 8 alanları. Ek olarak, kullanıcılar "sunucusuna bağlanılıyor serin olsun" Cylon formu çağırmak ve hizmet sonuçları beklerken etkisi.
GÜNCELLEŞTİRME: Tekrar bu sorunu ve bu asla yüzey kök neden hiç düşünmedik.
Biz geliştirme site uygulanması sırasında o aniden fark, iki kullanıcı bir site koleksiyonu erişemiyor. Bu hesapları ana siteye kimlik doğrulaması yapabilir, Ama belirli site koleksiyonu erişmeye çalışırken, Onlar sadece boş bir ekran olsun. Görüntülenen hata, Sadece boş bir beyaz sayfa.
Bir site koleksiyonu yönetici oturum açın ve bu kullanıcıların site admin ve bu sefer ekleyin çalışın, "Tamam" tuşuna basarak üzerine, Bu mesajı alır:
Özel durum oluştu. (HRESULT özel durum: 0x 80020009 (DISP_E_EXCEPTION))
Bu araştırma biraz zaman geçirdim ve ne yazık ki, işe yarar bir şey çıkmadı. Tanılama günlüğüne bazı mesajları vardı., Ama tam olarak onlara bu konuyla ilişkilendirmek zordu.
Sonunda, Biz site koleksiyonunun silinmesi ve yeniden oluşturulması ve çözüldü.
Eğer ı biçim ne gelecekte bunun nedeni, Bu posta güncelleriz.