Tôi đăng một tin rao vặt cho bán xe của tôi ở Bergen county, NJ vào đêm chủ nhật. Tôi nhận được một số yêu cầu qua email ngay sau đó và đóng cửa các đối phó với một ai đó vào đêm thứ ba.
Gần như quá tốt là đúng …
Tôi đăng một tin rao vặt cho bán xe của tôi ở Bergen county, NJ vào đêm chủ nhật. Tôi nhận được một số yêu cầu qua email ngay sau đó và đóng cửa các đối phó với một ai đó vào đêm thứ ba.
Gần như quá tốt là đúng …
Tôi không sửa đổi tìm kiếm nâng cao XSLT thường xuyên, do đó, nó có vẻ như tôi đang leo núi đồi nhỏ mỗi khi.
Bài học mới nhất của tôi là đây: Trường hợp một vấn đề khi tham khảo một cột. Trong tìm kiếm nâng cao của tôi, Tôi có cột định nghĩa như thế này:
<người chủ xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance">
<Cột>
<Cột Tên="GafTrainingInvoiceNumber" />
<Cột Tên="GafTrainingInvoiceLocation" />
<Cột Tên="WorkId"/>
<Cột Tên="Đánh giá"/>
<Cột Tên="Tiêu đề"/>
<Cột Tên="Tác giả"/>
<Cột Tên="Kích thước"/>
<Cột Tên="Đường dẫn"/>
<Cột Tên="Mô tả"/>
<Cột Tên="Viết"/>
<Cột Tên="SiteName"/>
<Cột Tên="CollapsingStatus"/>
<Cột Tên="HitHighlightedSummary"/>
<Cột Tên="HitHighlightedProperties"/>
<Cột Tên="ContentClass"/>
<Cột Tên="IsDocument"/>
<Cột Tên="PictureThumbnailURL"/>
</Cột>
</người chủ>
XLST hiển thị hoá đơn số và hóa đơn vị trí đã:
<p>
Đào tạo hoá đơn số: <XSL:giá trị của chọn="GafTrainingInvoiceNumber"/>
<BR></BR>
Đào tạo hoá đơn vị trí: <XSL:giá trị của chọn="GafTrainingInvoiceLocation"/>
</p>
Tuy nhiên, những lựa chọn có để tham khảo các tài sản trong tất cả các trường hợp thấp hơn, như trong:
<p>
Đào tạo hoá đơn số: <XSL:giá trị của chọn="gaftraininginvoicenumber"/>
<BR></BR>
Đào tạo hoá đơn vị trí: <XSL:giá trị của chọn="gaftraininginvoicelocation"/>
</p>
Cho đến khi tôi sửa chữa mà, kết quả tìm kiếm cho thấy các nhãn (tức là. "Đào tạo hoá đơn số") nhưng không có dữ liệu.
Kinh doanh kịch bản:
Toàn doanh nghiệp thực hiện rêu cho công ty sản xuất với 30+ Các trang web và một vài bộ phận chục doanh nghiệp.
Mục tiêu kinh doanh:
Mặc dù một vô số các nhóm kinh doanh (bộ phận, địa điểm, vv), một số dữ liệu nên được duy trì ở mức toàn cầu. Ví dụ:, một danh sách tổng thể uỷ quyền của tất cả các vị trí thực tế của công ty (Ví dụ như. cơ sở sản xuất, vị trí kho, văn phòng bán hàng) nên được duy trì ở một vị trí trung tâm.
Vấn đề kỹ thuật:
Phân loại doanh nghiệp được thực hiện bằng cách sử dụng nhiều trang web bộ sưu tập. Chúng tôi đã có thể thích để tạo danh sách thẩm quyền của vị trí thực tế trong một danh sách WSS tùy chỉnh. Sau đó, Khi chúng tôi cần thiết để có một cột trong một loại nội dung (hoặc một cột mới nhất được gửi vào một danh sách hoặc tài liệu thư viện) mà có công ty địa điểm, chúng tôi sẽ tạo ra một cột bằng cách sử dụng "tra cứu" loại dữ liệu và điểm vào danh sách tổng thể này.
Thật không may, tra cứu datatypes phải truy cập vào một danh sách nguồn "tại địa phương" ý nghĩa của chúng tôi danh sách thẩm quyền không thể khoảng các bộ sưu tập trang web.
Giải pháp kỹ thuật:
Thực hiện một kiểu dữ liệu tuỳ chỉnh mới thực hiện dựa trên SPField và thể hiện như một DropDownList trong giao diện người dùng có ListItems cư töø danh saùch WSS tổng thể.
Chúng tôi tạo ra một bộ sưu tập trang web mới được gọi là "http://localhost/EnterpriseData". Có, chúng tôi tạo ra một danh sách tùy chỉnh tên "Vị trí doanh nghiệp". Danh sách này chỉ sử dụng tiêu chuẩn "tiêu đề" lĩnh vực này để chứa danh sách các địa điểm thực tế của công ty.
Một sau một vài bước rời rạc để tạo ra một loại tùy chỉnh dữ liệu trong WSS. Bọn chúng:
Đây là mã cho rằng:
công cộng lớp học XYZZYCorporateLocationField : SPFieldText
{
công cộng XYZZYCorporateLocationField
(SPFieldCollection lĩnh vực, chuỗi typeName, chuỗi displayName)
: cơ sở(lĩnh vực, typeName, displayName) { }
công cộng XYZZYCorporateLocationField
(SPFieldCollection lĩnh vực, chuỗi displayName)
: cơ sở(lĩnh vực, displayName) { }
công cộng ghi đè BaseFieldControl FieldRenderingControl
{
nhận được
{
BaseFieldControl kiểm soát = mới XYZZYCorporateLocationFieldControl();
kiểm soát. FieldName = Điều này.InternalName;
trở lại kiểm soát;
} //nhận được
} // fieldrenderingcontrol
công cộng ghi đè chuỗi GetValidatedString(đối tượng giá trị)
{
Nếu (Điều này.Yêu cầu || giá trị. ToString().Bằng(Chuỗi.Sản phẩm nào))
{
ném mới SPFieldValidationException ("Không phân vùng.");
}
trở lại cơ sở.GetValidatedString(giá trị);
} // getvalidatedstring
} // XYZZYCorporateLocation
công cộng lớp học XYZZYCorporateLocationFieldControl : BaseFieldControl
{
bảo vệ DropDownList XYZZYCorporateLocationSelector;
bảo vệ ghi đè chuỗi DefaultTemplateName
{
nhận được
{
trở lại "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
công cộng ghi đè đối tượng Giá trị
{
nhận được
{
EnsureChildControls();
trở lại Điều này.XYZZYCorporateLocationSelector.SelectedValue;
} // nhận được
thiết lập
{
EnsureChildControls();
Điều này.XYZZYCorporateLocationSelector.SelectedValue = (chuỗi)Điều này.ItemFieldValue;
} // thiết lập
} // ghi đè lên các đối tượng giá trị
bảo vệ ghi đè void CreateChildControls()
{
Nếu (Điều này.Lĩnh vực == null || Điều này.ControlMode == SPControlMode.Hiển thị)
trở lại;
cơ sở.CreateChildControls();
Điều này.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer. FindControl("XYZZYCorporateLocationSelector");
Nếu (Điều này.XYZZYCorporateLocationSelector == null)
ném mới Ngoại lệ("LỖI: Không thể nạp. ASCX tập tin!");
Nếu (!Điều này.IsPostBack trang.)
{
bằng cách sử dụng (SPSite Trang web = mới SPSite("http://localhost/enterprisedata"))
{
bằng cách sử dụng (SPWeb web = trang web. OpenWeb())
{
Splist.Update() currentList = trang web. Danh sách["Công ty địa điểm"];
foreach (SPItem XYZZYCorporateLocation ở currentList.Items)
{
Nếu (XYZZYCorporateLocation["Tiêu đề"] == null) «««;
chuỗi theTitle;
theTitle = XYZZYCorporateLocation["Tiêu đề"].ToString();
Điều này.XYZZYCorporateLocationSelector.Items.Add
(mới ListItem(theTitle, theTitle));
} // foreach
} // bằng cách sử dụng spweb web = site.openweb()
} // bằng cách sử dụng trang web spsite = mới spsite("http://localhost/enterprisedata")
} // Nếu không một postback
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Đoạn mã trên về cơ bản thực hiện logic cho populating DropDownList với các giá trị từ danh sách tùy chỉnh WSS nằm ở http://localhost/enterprisedata và tên là "công ty tỉnh".
Tôi xác định cả hai lớp trong một file duy nhất .cs, biên dịch nó và đặt nó vào gấc (mạnh mẽ yêu cầu, Tất nhiên).
<%@ Kiểm soát Ngôn ngữ= "C#" Kế thừa="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Phiên bản = 12.0.0.0, văn hóa = trung lập,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Luôn luôn" %>
<%@ Đăng ký Tagprefix= "wssawc" Không gian tên="Microsoft.SharePoint.WebControls" Lắp ráp="Microsoft.SharePoint, Phiên bản = 12.0.0.0, Văn hóa = trung tính, PublicKeyToken = 71e9bce111e9429c" %> <%@ Đăng ký Tagprefix= "SharePoint" Không gian tên="Microsoft.SharePoint.WebControls" Lắp ráp="Microsoft.SharePoint, Phiên bản = 12.0.0.0, Văn hóa = trung tính, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= "XYZZYCorporateLocationFieldControl" runat= "máy chủ">
<Tiêu bản>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" runat= "máy chủ" />
</Tiêu bản>
</SharePoint:RenderingTemplate>
Ở trên được lưu vào c:\chương trình filesmicrosoft filescommon sharedweb máy chủ extensions12controltemplates.
<?XML Phiên bản="1.0" mã hóa="UTF-8" ?>
<FieldTypes>
<FieldType>
<Lĩnh vực Tên="TypeName">CorporateLocations</Lĩnh vực>
<Lĩnh vực Tên="ParentType">Văn bản</Lĩnh vực>
<Lĩnh vực Tên="TypeDisplayName">Công ty địa điểm</Lĩnh vực>
<Lĩnh vực Tên="TypeShortDescription">Tất cả các địa điểm XYZZY công ty bao gồm sản xuất hoặc các hóa chất.</Lĩnh vực>
<Lĩnh vực Tên="UserCreatable">ĐÚNG</Lĩnh vực>
<Lĩnh vực Tên="ShowInListCreate">ĐÚNG</Lĩnh vực>
<Lĩnh vực Tên="ShowInDocumentLibraryCreate">ĐÚNG</Lĩnh vực>
<Lĩnh vực Tên="ShowInSurveyCreate">ĐÚNG</Lĩnh vực>
<Lĩnh vực Tên="ShowInColumnTemplateCreate">ĐÚNG</Lĩnh vực>
<Lĩnh vực Tên="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Phiên bản = 1.0.0.0, Văn hóa = trung tính, PublicKeyToken = b0b19e85410990c4</Lĩnh vực>
<RenderPattern Tên="DisplayPattern">
<Chuyển đổi>
<Expr>
<Cột />
</Expr>
<Trường hợp Giá trị=""/>
<Mặc định>
<HTML>
<![CDATA[<khoảng phong cách = "màu:Đỏ"><b>]]>
</HTML>
<Cột SubColumnNumber="0" HTMLEncode="ĐÚNG"/>
<HTML><![CDATA[</b></khoảng>]]></HTML>
</Mặc định>
</Chuyển đổi>
</RenderPattern>
</FieldType>
</FieldTypes>
Tệp tin XML này cho biết thêm kiểu dữ liệu tuỳ chỉnh để WSS "thư viện" và phù hợp với nó lên chống lại gấc đã lắp ráp.
Sau khi di chuyển tất cả các bit vào vị trí, iisreset trên máy chủ và nó nên tất cả bắt đầu làm việc độc đáo.
Thêm thể loại: CAML
Ở đây là một bài tuyệt vời bởi một người tên là "craig" trên một kỹ thuật cho việc tìm kiếm CAML định nghĩa cho lĩnh vực nội dung loại dựa vào lại các định nghĩa thực sự sống từ một trang web.
Gửi bài của ông nói rằng tất cả. Trong khuôn khổ:
Thêm thể loại: Visual Studio 2005
Để kích hoạt hữu ích intellisense cho tính năng, yếu tố, vv trong visual studio 2005:
Intellisense bây giờ được kích hoạt cho rằng tài liệu XML.
Xem Ở đây cho thêm thông tin về chủ đề này và để được hướng dẫn về làm thế nào để tự động kết hợp WSS intellisense với bất kỳ tập tin XML.
Tôi đã và thông qua các bài kiểm tra nêu sáng nay. Tôi tìm thấy các kỳ thi để được khó khăn và công bằng.
Đó là một sự thiếu hụt tương đối của thông tin về kỳ thi này trên web. Tôi không chắc chắn tại sao.
Tôi rõ ràng sẽ không nhận được vào bất kỳ chi tiết về các kỳ thi tôi đã, nhưng tôi nghĩ rằng tôi có thể an toàn nói sau đây:
Nó sẽ liệt kê những gì bạn cần biết để vượt qua kỳ thi này và cách của nó, IMO, rất chính xác.
</kết thúc>Đăng ký vào blog của tôi!
Thêm thể loại: InfoPath
Tóm tắt: Một InfoPath 2007 hình thức được bố trí đến một máy chủ MOSS cung cấp một danh sách thả xuống của các nhà cung cấp gắn với một danh sách tùy chỉnh MOSS. Khi lựa chọn một nhà cung cấp, quy tắc chỉ định giá trị trường cho một số lĩnh vực văn bản ví dụ như đại diện bán hàng tên, địa chỉ, thành phố, nhà nước, Zip và điện thoại. Hiệu suất là khủng khiếp. Chúng tôi nhận thấy rằng hiệu suất bị nặng hơn (trong một thời trang phi tuyến tính) cho mỗi lĩnh vực bổ sung chúng tôi Cập Nhật theo cách này. Tức là, Nếu chúng ta chỉ cần Cập Nhật tên đại diện bán hàng, phải mất [x] số lượng thời gian. Nếu chúng tôi Cập Nhật đại diện bán hàng, address1, address2, thành phố, nhà nước, Số Zip, phải mất 10 thời gian dài hơn.
Giải pháp: Viết một dịch vụ web (mã mẫu có thể được tìm thấy Ở đây) đó là thông qua trong tên của một nhà cung cấp và nó sẽ trả lại các chi tiết nhà cung cấp. Sau đó, chỉ định các lĩnh vực theo cách này. Mặc dù điều này có vẻ quá chậm, đã có không có sự khác biệt discernable tại hiệu suất trong khi chúng tôi chỉ định 1 các lĩnh vực so với 8 lĩnh vực. Là một tiền thưởng thêm, người dùng nhận được một mát "liên hệ với hệ phục vụ" Cylon có hiệu lực trong khi họ chờ đợi cho các hình thức để gọi và tiêu thụ các kết quả dịch vụ.
CẬP NHẬT: Chúng tôi không bao giờ xác định nguyên nhân gốc của vấn đề này và nó bề mặt không bao giờ một lần nữa.
Chúng tôi nhận thấy trong thời gian thực hiện của một trang web phát triển đó đột nhiên, hai người dùng không thể truy cập vào một bộ sưu tập trang web. Các tài khoản có thể xác thực để các trang web chính, nhưng khi cố gắng để truy cập vào một bộ sưu tập trang web cụ thể, họ chỉ nhận được một màn hình trống. Không có lỗi hiển thị, chỉ là một trang trống màu trắng.
Chúng tôi đăng nhập như một quản trị viên bộ sưu tập trang web và cố gắng thêm một trong những người dùng là một trang web quản trị và thời gian này, sau khi nhấn "OK", chúng tôi nhận được tin nhắn này:
Xảy ra ngoại lệ. (Ngoại lệ từ HRESULT: 0x 80020009 (DISP_E_EXCEPTION))
Chúng tôi đã dành một số thời gian nghiên cứu này và không may, đã không đưa ra bất cứ điều gì hữu ích. Đã có một số thông điệp trong Nhật ký chuẩn đoán, nhưng nó đã được khó khăn để chính xác tương quan họ với vấn đề này.
Cuối cùng, chúng tôi xóa bộ sưu tập trang web và tái tạo nó và rằng đã giải quyết nó.
Nếu tôi tìm ra những gì gây ra điều này trong tương lai, Tôi sẽ cập nhật các bài đăng này.