0
A
答えて
0
これは、いくつかのサイトコアのXMLコントロールをオーバーライドし、次のコードを使用して適用されます。
private void RenderRenderings(DeviceDefinition deviceDefinition, int selectedIndex, int index)
{
Assert.ArgumentNotNull(deviceDefinition, "deviceDefinition");
ArrayList renderings = deviceDefinition.Renderings;
if (renderings == null)
{
return;
}
foreach (RenderingDefinition renderingDefinition in renderings)
{
if (renderingDefinition.ItemID != null)
{
Item item = Client.ContentDatabase.GetItem(renderingDefinition.ItemID);
XmlControl xmlControl = Resource.GetWebControl("DeviceRendering") as XmlControl;
Assert.IsNotNull(xmlControl, typeof(XmlControl));
System.Web.UI.HtmlControls.HtmlGenericControl htmlGenericControl = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
htmlGenericControl.Style.Add("padding", "0");
htmlGenericControl.Style.Add("margin", "0");
htmlGenericControl.Style.Add("border", "0");
htmlGenericControl.Style.Add("position", "relative");
htmlGenericControl.Controls.Add(xmlControl);
string uniqueID = Control.GetUniqueID("R");
this.Renderings.Controls.Add(htmlGenericControl);
htmlGenericControl.ID = Control.GetUniqueID("C");
xmlControl["Click"] = "OnRenderingClick(\"" + index + "\")";
xmlControl["DblClick"] = "device:edit";
if (index == selectedIndex)
{
xmlControl["Background"] = "#D0EBF6";
}
this.Controls.Add(uniqueID);
//Get DataSource item path
var datasource = string.Empty;
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
if (!string.IsNullOrEmpty(renderingDefinition.Datasource))
{
var dsItem = master.GetItem(renderingDefinition.Datasource);
if (dsItem != null)
datasource = dsItem.Paths.Path;
}
if (item != null)
{
xmlControl["ID"] = uniqueID;
xmlControl["Icon"] = item.Appearance.Icon;
xmlControl["Header"] = item.DisplayName;
xmlControl["Placeholder"] = WebUtil.SafeEncode(renderingDefinition.Placeholder);
xmlControl["DataSource"] = datasource;
}
else
{
xmlControl["ID"] = uniqueID;
xmlControl["Icon"] = "Applications/24x24/forbidden.png";
xmlControl["Header"] = "Unknown rendering";
xmlControl["Placeholder"] = string.Empty;
xmlControl["DataSource"] = string.Empty;
}
if (renderingDefinition.Rules != null && !renderingDefinition.Rules.IsEmpty)
{
int num = renderingDefinition.Rules.Elements("rule").Count<XElement>();
if (num > 1)
{
System.Web.UI.HtmlControls.HtmlGenericControl htmlGenericControl2 = new System.Web.UI.HtmlControls.HtmlGenericControl("span");
if (num > 9)
{
htmlGenericControl2.Attributes["class"] = "scConditionContainer scLongConditionContainer";
}
else
{
htmlGenericControl2.Attributes["class"] = "scConditionContainer";
}
htmlGenericControl2.InnerText = num.ToString();
htmlGenericControl.Controls.Add(htmlGenericControl2);
}
}
RenderDeviceEditorRenderingPipeline.Run(renderingDefinition, xmlControl, htmlGenericControl);
index++;
}
}
}
次のステップ更新し、次のファイルにある: \ Webサイト\のサイトコアの\シェル\オーバーライド\アプリケーション\レイアウト\ DeviceEditor.xml \ Webサイト\のサイトコアの\シェル\オーバーライド\アプリケーション\レイアウト\ DeviceRendering.xml
あなたは、次のブログ記事でソースコードを見つけることができます。
http://baraamasri.blogspot.com/2017/03/custom-device-editor_21.html
また、あなたがこれを行い、市場モジュールダウンロードすることができます。 https://marketplace.sitecore.net/Modules/C/Custom_Device_Editor.aspx
関連する問題
- 1. Sitecore ECM詳細レポート
- 2. 詳細テーブルのロールバック変更
- 3. Androidのマスター詳細レイアウト
- 4. Oracle Apex - マスター詳細フォームの詳細フォームの編集
- 5. Sitecoreページの変更レンダリングのレイアウト
- 6. 詳細を変更すると、AngularJs、マスター詳細更新マスター
- 7. XamarinフォームiPhoneデバイスの詳細
- 8. プレイス詳細APIのshort_nameの変更
- 9. 変更の詳細のTfs API
- 10. Entity Framework(マスター詳細)マスターから別のフォームにある詳細
- 11. Git pull後の詳細変更
- 12. exeファイルのプロパティ(詳細)を変更
- 13. 詳細検索フォームとオートコンプリート
- 14. Winforms DataGridView詳細編集フォーム
- 15. Crystal Reports詳細の詳細
- 16. フォームの検証と詳細の表示
- 17. Sitecoreリセットアイテムのレイアウト
- 18. マスター詳細ページを使用しないXamarinフォームの引き出しレイアウト(ナビゲーションメニュー)
- 19. Xamarinフォーム - 右サイドマスターの詳細ページ
- 20. シンプルな詳細フォームでのデータバインド
- 21. フォームの詳細をメールに送信
- 22. データ変更時のアンドロイドのマスター/詳細リストビューの更新
- 23. 一時的にSitecoreアイテムのレイアウトを変更する
- 24. DataGridの行詳細の行詳細のDataTemplateにあるTextBlockのテキストを変更するには?
- 25. 詳細ビューの他のドロップダウンリストに基づくドロップダウンリストの変更ASP.NET
- 26. XCodeプロジェクトテンプレートの詳細の更新
- 27. アイテムのベンダー詳細の更新
- 28. 詳細フォーム情報を指定する
- 29. WPF:詳細のレベルを変更してサイズの変更に適応させる
- 30. Zend_AuthとUIのユーザーの詳細を動的に変更する
確実なことを、行います。 –
@Adriaan私は答えを更新しました、これがより良いことを願っています。 –
@モハマドデバイスエディタダイアログの前に開くレイアウトの詳細ダイアログで、同じ機能を実装するために変更する必要があるクラスとXMLファイルを教えてください。それは私のために非常に役立つでしょう –