我已經爲上下文菜單創建了以下代碼。有一個模板,我創建了一個上下文菜單。當我單擊上下文菜單時,它將獲得字段值並將其顯示在我已包含在ASPX文件中此代碼。我能夠遍歷項目中的字段,但無法傳遞給aspx文件。如何將值從類文件傳遞給siteMore中的showModalDialogue?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sitecore.Shell.Framework.Commands; using Sitecore.Web.UI.Sheer;
using Sitecore.Data.Items;
namespace ContextMenus
{
public class CustomMenuType : Command
{
string ItemName;
public override void Execute(CommandContext context)
{
if (context.Items.Length == 1)
{
Item _item = context.Items[0];
System.Collections.Specialized.NameValueCollection _parameters = new System.Collections.Specialized.NameValueCollection();
_parameters["id"] = _item.ID.ToString();
Sitecore.Context.ClientPage.Start(this, "Run", _parameters);
string ItemDatabase = _item.Database.Name;
string ItemParent1 = _item.ID.ToString();
Sitecore.Data.Database master1 = Sitecore.Configuration.Factory.GetDatabase(ItemDatabase);
string ItemPath = _item.Parent.Paths.FullPath;
Sitecore.Data.Items.Item home1 = master1.GetItem(ItemPath);
ContextMenus.Entities.TemplateEntity objEntity = new ContextMenus.Entities.TemplateEntity();
foreach (Sitecore.Data.Items.Item child in home1.Children)
{
objEntity.Fname = child["First Name"];
objEntity.Lname = child["Last Name"];
objEntity.Dept = child["Department"];
objEntity.Age = child["Age"];
}
}
}
protected void Run(Sitecore.Web.UI.Sheer.ClientPipelineArgs args)
{
Sitecore.Text.UrlString _url = new Sitecore.Text.UrlString("/ContextMenus/CustomContextMenu.aspx");
_url.Append("id", args.Parameters["id"]);
Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog(_url.ToString());
}
public override CommandState QueryState(CommandContext context)
{
foreach (Item _item in context.Items)
{
if (_item.TemplateID.ToString() != "{9F8334D3-01F3-4159-AA4A-BF513AC3E9FB}")
{
return CommandState.Hidden;
}
}
return base.QueryState(context);
}
}
}
我已經寫了下面的代碼的代碼隱藏文件[CustomContextMenu.aspx.cs]。它只會從我的實體[TemplateEntity]的數據,我想在aspx文件來顯示這一點。
ContextMenus.Entities.TemplateEntity ObjTempEntity = new
ContextMenus.Entities.TemplateEntity();
StringBuilder sb = new StringBuilder();
sb.Append("First Name").Append("=").Append(ObjTempEntity.Fname);
Response.Write(sb.ToString());
StringBuilder sb1 = new StringBuilder();
sb1.Append("Last Name").Append("=").Append(ObjTempEntity.Lname);
Response.Write(sb1.ToString());
StringBuilder sb2 = new StringBuilder();
sb2.Append("Department Name").Append("=").Append(ObjTempEntity.Dept);
Response.Write(sb2.ToString());
StringBuilder sb3 = new StringBuilder();
sb3.Append("Age").Append("=").Append(ObjTempEntity.Age);
Response.Write(sb3.ToString());
我能夠遍歷項目現場values.I要dispaly在ASPX file.How這些值傳遞字段名稱與showModalDialogue值。
1.我在queryState方法中對模板ID進行了硬編碼。我在execute方法中獲取了該項的字段值。
2.我已經創建了CustomContextMenu aspx文件,我想要顯示字段值。如何將值從實體類[TemplateEntity]傳遞到CustomMenuType.aspx.cs文件。
爲什麼不只是將該項目的GUID傳遞給ASPX模式,然後從代碼後面的Sitecore中獲取該項目?然後您可以訪問所有字段而不是傳遞單個字段 – jammykam