在定义自定义编辑器的get当前项中,我遇到了问题。
我需要获得当前页面(文章)的Id,但是Sitecore.Context.Item返回给我null。如何从当前项目获得身份?
UPD:
编辑器aspx文件是测试工作的。
<asp:Repeater ID="Comments" runat="server">
<ItemTemplate>
<div>
<b><%# DataBinder.Eval(Container.DataItem, "Name")%></b>
<p><%# DataBinder.Eval(Container.DataItem, "Text")%></p>
</div>
</ItemTemplate>
<SeparatorTemplate><hr /></SeparatorTemplate>
</asp:Repeater>政务司司长(Page_Load):
protected void Page_Load(object sender, EventArgs e)
{
var currentItem = Sitecore.Context.Database.GetItem(Request.QueryString["id"]);
using (var connection = new SqlConnection(@"..."))
{
var query = "SELECT Name, Text from dbo.Comments " +
"WHERE Article = @CurrentItemId";
var command = new SqlCommand(query, connection);
command.Parameters.Add("@CurrentItemId", System.Data.SqlDbType.UniqueIdentifier).Value = currentItem.ID.ToGuid();
try
{
connection.Open();
var list = new List<Comment>();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
list.Add(new Comment(reader[0].ToString(), reader[1].ToString()));
}
Comments.DataSource = list;
Comments.DataBind();
reader.Close();
}
finally
{
connection.Close();
}
}
}发布于 2013-05-23 13:34:49
需要从查询中获取当前项ID和当前语言。
// get the current Item and language
string itemID = Request.QueryString["id"];
Language language = LanguageManager.GetLanguage(Request.QueryString["la"]);
if (language != null && !string.IsNullOrEmpty(itemID))
{
Database masterDB = Sitecore.Configuration.Factory.GetDatabase("master");
CurrentItem = masterDB.GetItem(itemID, language);
}发布于 2013-05-23 11:40:50
我找到这件东西的身份证了。您可以从item_id请求的QueryStrings获得以下信息:
Request.QueryString["id"]。
我还没有找到答案,因为我从QueryStrings获得了{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}格式的条目。
https://stackoverflow.com/questions/16711709
复制相似问题