представление формы и внешний IBindableTemplate - PullRequest
0 голосов
/ 17 августа 2010

Я хотел бы установить один шаблон для редактирования / вставки и просмотра в моем пользовательском элементе управления FormView.Но я получил эти странные исключения

Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.Table'.

public class CustomFormView : FormView
    {
        [PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(FormView), BindingDirection.TwoWay)]
        public IBindableTemplate FormTemplate { get; set; }

        protected override void OnInit(EventArgs e)
        {
            ChangeMode(FormViewMode.Edit);
            if (FormTemplate != null)
            {
                if (CurrentMode == FormViewMode.Edit)
                {
                    FormTemplate.InstantiateIn(this);
                }
            }
            base.OnInit(e);
        }
    }

отредактировано:

на первом этапе, ясоздал новый пользовательский элемент управления и добавил форму просмотра ("FV")

public partial class Form : UserControl
{
    private IBindableTemplate _template = null;

    [PersistenceMode(PersistenceMode.InnerProperty),
    TemplateContainer(typeof(FormView), System.ComponentModel.BindingDirection.TwoWay)]
    public IBindableTemplate FormTemplate { set;get }

    protected void Page_Init()
    {
        if (FormTemplate != null)
        {
            FV.InsertItemTemplate = FV.EditItemTemplate = FormTemplate;
            if (!IsPostBack) FormTemplate.InstantiateIn(FV);
        }
    }
}

Теперь я хочу преобразовать этот элемент управления в веб-элемент управления.

Буду признателен, если вы ответите на мой вопрос.

1 Ответ

1 голос
/ 17 августа 2010

Что именно вы пытаетесь сделать ??

Что бы вы ни пытались сделать, вы делаете это неправильно.

TemplateContainer(typeof(FormView)) Это невозможно.

Вам нужно указать свой собственный тип, унаследованный от IDataItemContainer.

Редактировать:

Я бы не советовал все эти усилия простопотому что вы хотите иметь 1 шаблон для редактирования и вставки.Лучше положить одинаковое содержимое в оба шаблона.Опыт показывает, что со временем вам понадобятся различные функции для редактирования и вставки.

...