私はベルゲン郡で私の車を販売するための広告を掲載, 日曜日の夜にニュージャージー州. 私はその後まもなく電子メールを介していくつかの問い合わせを受け、火曜日の夜に誰かと契約を締結.
ほぼあまりにも良い true …
私はベルゲン郡で私の車を販売するための広告を掲載, 日曜日の夜にニュージャージー州. 私はその後まもなく電子メールを介していくつかの問い合わせを受け、火曜日の夜に誰かと契約を締結.
ほぼあまりにも良い true …
しばしば非常に高度な検索の XSLT を変更しないでください。, たびに小さな丘を登っているようなそうです。.
これは、私の最新のレッスン: ケース列を参照するときの問題します。. 私の高度な検索, これとして定義された列をあります。:
<ルート xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<列>
<列 名前="GafTrainingInvoiceNumber" />
<列 名前="GafTrainingInvoiceLocation" />
<列 名前="ワーク Id"/>
<列 名前="ランク"/>
<列 名前="タイトル"/>
<列 名前="著者"/>
<列 名前="サイズ"/>
<列 名前="パス"/>
<列 名前="説明"/>
<列 名前="書き込み"/>
<列 名前="SiteName"/>
<列 名前="CollapsingStatus"/>
<列 名前="HitHighlightedSummary"/>
<列 名前="HitHighlightedProperties"/>
<列 名前="ContentClass"/>
<列 名前="IsDocument"/>
<列 名前="PictureThumbnailURL"/>
</列>
</ルート>
請求書番号、請求書の場所を表示します XLST をされていた:
<p>
トレーニング請求書番号: <xsl:値の 選択="GafTrainingInvoiceNumber"/>
<br></br>
請求書の研修場所: <xsl:値の 選択="GafTrainingInvoiceLocation"/>
</p>
ただし, 選択はすべて小文字でプロパティを参照するには, ように:
<p>
トレーニング請求書番号: <xsl:値の 選択="gaftraininginvoicenumber"/>
<br></br>
請求書の研修場所: <xsl:値の 選択="gaftraininginvoicelocation"/>
</p>
私はそれを修正するまで, 検索結果ラベル (すなわち. 「トレーニング請求書番号」) データがありませんが、.
ビジネス シナリオ:
製造会社のコケの企業全体に実装 30+ サイトと数十の企業の部門.
ビジネス目標:
ビジネス グループの多数にもかかわらず (部門, 場所, など), 特定のデータは、グローバル レベルで維持する必要があります。. たとえば, 会社のすべての物理的な場所の権限のマスター リスト (例えば. 製造設備, 倉庫の場所, 営業所) 中央に維持する必要があります。.
技術的な問題:
企業分類は複数のサイト コレクションを使用して実装されました. 我々 の物理的な場所の権限リストをカスタムの WSS リスト作成と思ってください。. [, 我々 はコンテンツ タイプの列を必要なとき (または、リストまたはドキュメント ライブラリに追加する列) 企業の場所が含まれています。, 「参照を使用して列を作成するか" データ型とこのマスター リストにポイント.
残念なことに, 参照データ型"ローカルのソース リストにアクセスする必要があります。" 権限の私達のリストがサイト コレクションにまたがることはできないことを意味.
技術ソリューション:
新しいカスタム データ型に基づいて SPField を実装し、マスターの WSS リストからそのリスト項目の設定 UI に DropDownList として表されます実装.
我々 と呼ばれる新しいサイト コレクションを作成 "http://localhost/EnterpriseData". そこ, 我々 は「企業の場所」という名前のカスタム リストを作成. このリストは標準的な"タイトルを使用してだけ" 企業の実際の場所のリストを格納するフィールド.
いずれかの手順をいくつか離散 WSS でカスタム データ型を作成するには. 彼らは:
ここでは、そのためのコード:
パブリック クラス XYZZYCorporateLocationField : SPFieldText
{
パブリック XYZZYCorporateLocationField
(SPFieldCollection フィールド, 文字列 typeName, 文字列 displayName)
: ベース(フィールド, typeName, displayName) { }
パブリック XYZZYCorporateLocationField
(SPFieldCollection フィールド, 文字列 displayName)
: ベース(フィールド, displayName) { }
パブリック オーバーライド BaseFieldControl FieldRenderingControl
{
取得
{
BaseFieldControl コントロール = 新機能 XYZZYCorporateLocationFieldControl();
コントロール。フィールド名 = この.InternalName;
戻り値 コントロール;
} //取得
} // fieldrenderingcontrol
パブリック オーバーライド 文字列 GetValidatedString(オブジェクト 値)
{
場合 (この.必須 || 値です。ToString().等しい(文字列.空))
{
スロー 新機能 SPFieldValidationException (「部門は割り当てられません。");
}
戻り値 ベース.GetValidatedString(値);
} // getvalidatedstring
} // XYZZYCorporateLocation
パブリック クラス XYZZYCorporateLocationFieldControl : BaseFieldControl
{
保護 DropDownList XYZZYCorporateLocationSelector;
保護 オーバーライド 文字列 DefaultTemplateName
{
取得
{
戻り値 "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
パブリック オーバーライド オブジェクト 値
{
取得
{
EnsureChildControls();
戻り値 この.SelectedValue XYZZYCorporateLocationSelector。;
} // 取得
セット
{
EnsureChildControls();
この.XYZZYCorporateLocationSelector.SelectedValue = (文字列)この.ItemFieldValue;
} // セット
} // オブジェクト値をオーバーライドします。
保護 オーバーライド void CreateChildControls()
{
場合 (この.フィールド = = null || この.ControlMode = = SPControlMode.ディスプレイ)
戻り値;
ベース.CreateChildControls();
この.XYZZYCorporateLocationSelector =
(DropDownList)FindControl TemplateContainer。("XYZZYCorporateLocationSelector");
場合 (この.XYZZYCorporateLocationSelector = = null)
スロー 新機能 例外("エラー: 読み込むことができません。ASCX ファイル!");
場合 (!この.IsPostBack ページ。)
{
使用してください。 (SPSite サイト = 新機能 SPSite("http://localhost/enterprisedata"))
{
使用してください。 (SPWeb web サイトを =。OpenWeb())
{
SPList 現時点 web を =。リスト[「企業の場所"];
foreach (SPItem XYZZYCorporateLocation で currentList.Items)
{
場合 (XYZZYCorporateLocation[「タイトル"] == null) 続行;
文字列 件名;
タイトル = XYZZYCorporateLocation[「タイトル"].ToString();
この.XYZZYCorporateLocationSelector.Items.Add
(新機能 ListItem(件名, 件名));
} // foreach
} // spweb の web を使用して site.openweb を =()
} // spsite のサイトを使用して新しい spsite を =("http://localhost/enterprisedata")
} // そうでない場合、ポストバック
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
上記のコードは基本的に DropDownList にある WSS カスタム リストから値を設定するロジックを実装します。 http://localhost/enterprisedata 名前付きの「企業部門」.
1 つの .cs ファイルで両方のクラスを定義しました。, それをコンパイルし、GAC に配置 (強い必要, もちろんです).
<%@ コントロール 言語="C#" 継承="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,バージョン 12.0.0.0 文化を = = ニュートラル,PublicKeyToken = は 71e9bce111e9429c" compilationMode"常に =" %>
<%@ 登録 Tagprefix"wssawc =" Namespace="Microsoft.SharePoint.WebControls" アセンブリ="Microsoft.SharePoint, バージョン = 12.0.0.0, カルチャ ニュートラル =, PublicKeyToken = は 71e9bce111e9429c" %> <%@ 登録 Tagprefix"SharePoint を =" Namespace="Microsoft.SharePoint.WebControls" アセンブリ="Microsoft.SharePoint, バージョン = 12.0.0.0, カルチャ ニュートラル =, PublicKeyToken = は 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID"XYZZYCorporateLocationFieldControl =" runat「サーバー」を =>
<テンプレート>
<asp:DropDownList ID"XYZZYCorporateLocationSelector =" runat"server =" />
</テンプレート>
</SharePoint:RenderingTemplate>
上記が c に保存されます。:\プログラム \ 共通ファイル \ ファイルにサーバー extensions12controltemplates.
<?xml バージョン="1.0" エンコード="utf-8" ?>
<フィールド型>
<FieldType>
<フィールド 名前="TypeName">CorporateLocations</フィールド>
<フィールド 名前="ParentType">本文</フィールド>
<フィールド 名前="TypeDisplayName">企業の場所</フィールド>
<フィールド 名前="TypeShortDescription">製造用又はその他の施設を含むすべての XYZZY 企業の場所.</フィールド>
<フィールド 名前="UserCreatable">真</フィールド>
<フィールド 名前="ShowInListCreate">真</フィールド>
<フィールド 名前="ShowInDocumentLibraryCreate">真</フィールド>
<フィールド 名前="ShowInSurveyCreate">真</フィールド>
<フィールド 名前="ShowInColumnTemplateCreate">真</フィールド>
<フィールド 名前="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, バージョン 1.0.0.0 を =, カルチャ ニュートラル =, PublicKeyToken = b0b19e85410990c4</フィールド>
<RenderPattern 名前="DisplayPattern">
<スイッチ>
<Expr>
<列 />
</Expr>
<ケース 値=""/>
<既定>
<HTML>
<![CDATA[<またがるスタイル ="色:「赤」><b>]]>
</HTML>
<列 SubColumnNumber="0" HTMLEncode="真"/>
<HTML><![CDATA[</b></スパン>]]></HTML>
</既定>
</スイッチ>
</RenderPattern>
</FieldType>
</フィールド型>
この XML ファイル WSS"ライブラリにカスタム データ型を追加します" GAC に対してと一致するアセンブリがあった.
これらのすべてのビットを所定の位置に移動した後, サーバーとそれに iisreset 心地よく働いてすべてスタートする必要があります。.
追加カテゴリ: CAML
ここで "クレイグという男が、偉大な投稿" CAML フィールド コンテンツ タイプに基づいてサイトから本物の定義の定義を見つけるための技術.
彼の投稿はそれをすべて言う. 簡単に言うと:
追加カテゴリ: Visual Studio 2005
Intellisense 有効に便利な機能, 要素, visual studio で等します。 2005:
その XML ドキュメントでは、Intellisense が有効になりました.
参照してください。 ここで WSS intellisense を任意の XML ファイルに自動的に関連付ける方法の詳細についてはこの主題と手順.
今朝の上記のテストに合格したとり. 困難かつ公正である試験を発見.
この試験、ウェブ上の情報の相対的な不足があります。. 私はわからない理由.
私は明らかに撮った試験についての詳細には触れません, しかし、私は安全に次の言うことができるだと思う:
試験とを渡すために知って必要なものが一覧表示されます。, IMO, 非常に正確です.
</終了>私のブログを購読します。!
追加カテゴリ: InfoPath
概要: InfoPath 2007 MOSS のカスタム リストに関連付けられたベンダーのドロップ ダウン リストを提供するフォーム MOSS サーバーに展開するには. 仕入先を選択します。, ルールは、一握りのセールス担当者名などのテキスト フィールドにフィールドの値を割り当てる, アドレス, 都市, 状態, 郵便番号と電話. パフォーマンスは恐ろしいです。. 我々 のパフォーマンスが悪化に気づく (非直線に) それぞれの追加フィールドにこのようにを更新します。. すなわち, 私達はちょうど場合営業担当者名を更新します。, かかる [x] 時間の量. もし我々 は営業担当者を更新, 住所 1, 住所 2, 都市, 状態, zip, かかる 10 長い時間.
ソリューション: Web サービスを作成します。 (サンプル コードを見つけることができます。 ここで) 仕入先の名前、渡され、バック ベンダーの詳細が返されます. [, この方法をフィールドに割り当てる. これはあまりにも思えるが低下します。, 差はなかった discernable のパフォーマンスで我々 が割り当てられたとき 1 対フィールド 8 フィールド. 追加ボーナスとして, ユーザーは、クールな"サーバーに接続を取得します。" サイロン 効果を呼び出すし、サービスの結果を処理するフォームを待っている間.
更新プログラム: 我々 は再びこの問題とそれは決して表面の根本原因を決定.
我々 開発サイトの実装時に、突然の通知します。, 2 人のユーザーがサイト コレクションにアクセスすることはありません。. それらのアカウントのメインのサイトに認証することができます。, しかし、特定のサイト コレクションにアクセスしようとするとき, 彼らは、空白のスクリーンをちょうど得る. エラー表示なし, ちょうど白い空白のページ.
我々 は、サイト コレクションの管理者としてログインし、それらのユーザーの 1 つは、サイト管理者とこの時間として追加しようとしました。, 「OK」を押す時に, このメッセージを取得します。:
例外が発生しました. (HRESULT からの例外: 0x 80020009 (DISP_E_EXCEPTION))
これを研究に時間を費やして、残念ながら, 何の役に立つが来なかった. 診断ログにいくつかのメッセージがあった。, しかし、正確にこの問題に相関するは難しかった.
最後に, サイト コレクションを削除して、それとは、再作成されますそれを解決.
私は把握する場合この将来の原因は何, 私はこのポストが更新されます。.