首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从自定义编辑器Sitecore 6.5获取当前项目

从自定义编辑器Sitecore 6.5获取当前项目
EN

Stack Overflow用户
提问于 2013-05-23 10:36:24
回答 2查看 1.3K关注 0票数 0

在定义自定义编辑器的get当前项中,我遇到了问题。

我需要获得当前页面(文章)的Id,但是Sitecore.Context.Item返回给我null。如何从当前项目获得身份?

UPD:

编辑器aspx文件是测试工作的。

代码语言:javascript
运行
复制
<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):

代码语言:javascript
运行
复制
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();
        }
    }
}
EN

回答 2

Stack Overflow用户

发布于 2013-05-23 13:34:49

需要从查询中获取当前项ID和当前语言。

代码语言:javascript
运行
复制
// 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);
}
票数 1
EN

Stack Overflow用户

发布于 2013-05-23 11:40:50

我找到这件东西的身份证了。您可以从item_id请求的QueryStrings获得以下信息:

Request.QueryString["id"]

我还没有找到答案,因为我从QueryStrings获得了{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}格式的条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16711709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档