Sitecore 玻璃映射器-设置过期编辑器的按钮和框架标题

Sitecore 玻璃映射器-设置过期编辑器的按钮和框架标题,sitecore,sitecore8,glass-mapper,Sitecore,Sitecore8,Glass Mapper,我想用BeginEdit frame为框架和自定义按钮设置标题, 但我不能在最后一种方法中设置它 public GlassEditFrame BeginEditFrame(); public GlassEditFrame BeginEditFrame(string dataSource); public GlassEditFrame BeginEditFrame(string buttons, string dataSource); public GlassEditFrame BeginEdit

我想用BeginEdit frame为框架和自定义按钮设置标题, 但我不能在最后一种方法中设置它

public GlassEditFrame BeginEditFrame();
public GlassEditFrame BeginEditFrame(string dataSource);
public GlassEditFrame BeginEditFrame(string buttons, string dataSource);
public GlassEditFrame BeginEditFrame<T>(T model, string title = null, params Expression<Func<T, object>>[] fields) where T : class;
public GlassEditFrame BeginEditFrame();
公共GlassEditFrame BeginEditFrame(字符串数据源);
公共GlassEditFrame BeginEditFrame(字符串按钮、字符串数据源);
公共GlassEditFrame BeginEditFrame(T模型,字符串标题=null,参数表达式[]字段),其中T:class;

设置编辑框标题还有其他方法吗?

我遇到了同样的情况,最后创建了一个派生的编辑框和自定义扩展来支持标题

public static class HtmlHelperExtensions
{
    /// <summary>
    /// An extra extensions because the default ones are bugged or do not expose title
    /// </summary>
    /// <typeparam name="TModel"></typeparam>
    /// <param name="htmlHelper"></param>
    /// <param name="model"></param>
    /// <param name="buttons"></param>
    /// <param name="title"></param>
    /// <returns></returns>
    public static GlassEditFrame BeginEditFrame<TModel>(this HtmlHelper htmlHelper, TModel model, string buttons, string title = "") where TModel : BaseCommon
    {
        var output = new HtmlTextWriter(htmlHelper.ViewContext.Writer);
        var editFrame = new EditFrame()
        {
            DataSource = model.Id.ToString(),
            Buttons = buttons,
            Title = title
        };
        editFrame.RenderFirstPart(output);
        return new CustomGlassEditFrame(editFrame, htmlHelper.ViewContext.Writer);
    }
}

/// <summary>
/// Added this fix because were unable to set the Title otherwise..
/// </summary>
public class CustomGlassEditFrame : GlassEditFrame
{
    public CustomGlassEditFrame(string buttons, TextWriter writer, string dataSource = "") : base(buttons, writer, dataSource)
    {
    }

    public CustomGlassEditFrame(EditFrame frame) : base(frame)
    {
    }

    /// <summary>
    /// Using HtmlHelperExtensions.BeginEditFrame(EditFrame) you will miss the writer in the RenderLastPart, this extra constructor passes the writer
    /// </summary>
    /// <param name="frame"></param>
    /// <param name="writer"></param>
    public CustomGlassEditFrame(EditFrame frame, TextWriter writer)
        : base(frame.Buttons, writer, frame.DataSource)
    {

    }
}
公共静态类HtmlHelperExtensions
{
/// 
///一个额外的扩展名,因为默认扩展名被窃听或不公开标题
/// 
/// 
/// 
/// 
/// 
/// 
/// 
公共静态GlassEditFrame BeginEditFrame(此HtmlHelper HtmlHelper,TModel模型,字符串按钮,字符串标题=”),其中TModel:BaseCommon
{
var output=新的HtmlTextWriter(htmlHelper.ViewContext.Writer);
var editFrame=new editFrame()
{
DataSource=model.Id.ToString(),
按钮=按钮,
头衔
};
editFrame.RenderFirstPart(输出);
返回新的CustomGlassEditFrame(editFrame,htmlHelper.ViewContext.Writer);
}
}
/// 
///添加此修复程序是因为我们无法以其他方式设置标题。。
/// 
公共类CustomGlassEditFrame:GlassEditFrame
{
公共CustomGlassEditFrame(字符串按钮、TextWriter编写器、字符串数据源=”):基本(按钮、编写器、数据源)
{
}
公共自定义GlassEditFrame(EditFrame框架):基础(框架)
{
}
/// 
///使用HtmlHelperExtensions.BeginEditFrame(EditFrame),您将错过RenderLastPart中的编写器,这个额外的构造函数将传递编写器
/// 
/// 
/// 
公共自定义GlassEditFrame(EditFrame,TextWriter)
:base(frame.button、writer、frame.DataSource)
{
}
}

我遇到了同样的情况,最终创建了一个派生的EditFrame和自定义扩展来支持标题

public static class HtmlHelperExtensions
{
    /// <summary>
    /// An extra extensions because the default ones are bugged or do not expose title
    /// </summary>
    /// <typeparam name="TModel"></typeparam>
    /// <param name="htmlHelper"></param>
    /// <param name="model"></param>
    /// <param name="buttons"></param>
    /// <param name="title"></param>
    /// <returns></returns>
    public static GlassEditFrame BeginEditFrame<TModel>(this HtmlHelper htmlHelper, TModel model, string buttons, string title = "") where TModel : BaseCommon
    {
        var output = new HtmlTextWriter(htmlHelper.ViewContext.Writer);
        var editFrame = new EditFrame()
        {
            DataSource = model.Id.ToString(),
            Buttons = buttons,
            Title = title
        };
        editFrame.RenderFirstPart(output);
        return new CustomGlassEditFrame(editFrame, htmlHelper.ViewContext.Writer);
    }
}

/// <summary>
/// Added this fix because were unable to set the Title otherwise..
/// </summary>
public class CustomGlassEditFrame : GlassEditFrame
{
    public CustomGlassEditFrame(string buttons, TextWriter writer, string dataSource = "") : base(buttons, writer, dataSource)
    {
    }

    public CustomGlassEditFrame(EditFrame frame) : base(frame)
    {
    }

    /// <summary>
    /// Using HtmlHelperExtensions.BeginEditFrame(EditFrame) you will miss the writer in the RenderLastPart, this extra constructor passes the writer
    /// </summary>
    /// <param name="frame"></param>
    /// <param name="writer"></param>
    public CustomGlassEditFrame(EditFrame frame, TextWriter writer)
        : base(frame.Buttons, writer, frame.DataSource)
    {

    }
}
公共静态类HtmlHelperExtensions
{
/// 
///一个额外的扩展名,因为默认扩展名被窃听或不公开标题
/// 
/// 
/// 
/// 
/// 
/// 
/// 
公共静态GlassEditFrame BeginEditFrame(此HtmlHelper HtmlHelper,TModel模型,字符串按钮,字符串标题=”),其中TModel:BaseCommon
{
var output=新的HtmlTextWriter(htmlHelper.ViewContext.Writer);
var editFrame=new editFrame()
{
DataSource=model.Id.ToString(),
按钮=按钮,
头衔
};
editFrame.RenderFirstPart(输出);
返回新的CustomGlassEditFrame(editFrame,htmlHelper.ViewContext.Writer);
}
}
/// 
///添加此修复程序是因为我们无法以其他方式设置标题。。
/// 
公共类CustomGlassEditFrame:GlassEditFrame
{
公共CustomGlassEditFrame(字符串按钮、TextWriter编写器、字符串数据源=”):基本(按钮、编写器、数据源)
{
}
公共自定义GlassEditFrame(EditFrame框架):基础(框架)
{
}
/// 
///使用HtmlHelperExtensions.BeginEditFrame(EditFrame),您将错过RenderLastPart中的编写器,这个额外的构造函数将传递编写器
/// 
/// 
/// 
公共自定义GlassEditFrame(EditFrame,TextWriter)
:base(frame.button、writer、frame.DataSource)
{
}
}

为什么不能使用“最后一个玻璃”方法?你看到了什么问题?无法设置按钮为什么不能使用最后一个玻璃方法?您看到了什么问题?无法设置按钮