Я пытаюсь достичь чего-то, что, я уверен, довольно просто, но я не вижу дерева для деревьев.Я создал простой элемент управления, который наследуется от кнопки ссылки, которая содержит список простого объекта LinkParamaters. Идея состоит в том, что в разметке вы можете определить URL-адрес обратной передачи, а также параметры, которые затем возвращают свойство PostBackUrl для включения строки запроса.Это работало, как и ожидалось, пока я не хотел привязывать данные к параметрам в повторителе.Затем я начал получать следующую ошибку синтаксического анализатора:
Выражения привязки данных поддерживаются только для объектов, имеющих событие DataBinding.UI.Controls.LinkParameter не имеет события DataBinding.
Так что я решил, что мне, очевидно, необходимо реализовать событие связывания данных.может быть, есть интерфейс, который мне нужно реализовать, я не смог его найти.К сожалению, я только что переместил задания, поэтому на данный момент не имею доступа к отражателю, поэтому не смог углубиться в код, но я увидел, что Control имеет эти события / методы, наследование объекта параметра из Control решило ошибку синтаксического анализатора, но неудивительно, чтоне удалось разрешить привязку, и в любом случае это не имеет смысла, поскольку это не элемент управления.
Код кнопки ссылки:
[ParseChildren(true, DefaultProperty = "Parameters")]
public class QueryLinkButton : LinkButton
{
private String _url = null;
public QueryLinkButton()
{
this.Parameters = new List<LinkParameter>();
}
public override String PostBackUrl
{
get
{
return _url ?? (_url = BuildUrl());
}
set
{
base.PostBackUrl = value;
}
}
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public List<LinkParameter> Parameters { get; set; }
private String BuildUrl()
{
//Build URL to Include Query String Params
}
}
public class LinkParameter
{
public String Name { get; set; }
public String Value { get; set; }
}
А затем код Asp:
<custom:QueryLinkButton runat="server" ID="EventLink" Text="View Accommodation" PostBackUrl="HotelCriteria.aspx">
<custom:LinkParameter runat="server" Name="EventID" Value='<%# Eval("EventID")%>'/>
</custom:QueryLinkButton>
Пока я справлялся с этой проблемой, обрабатывая эту серверную часть, но это отчасти сводит на нет то, что я пытался сделать, создавая пользовательский элемент управления, поскольку я хотел определить эти вещи исключительно в разметке.Даже просто ссылка на статью, чтобы начать меня, будет очень цениться, так как я гуглял так долго и мог найти только похожие проблемы, но не одно и то же, но это, скорее всего, плохой критерий поиска.
Заранее спасибо
Пол