У меня есть <asp:Repeater>
на моей веб-странице, которая привязана к программно созданному набору данных.ASP.NET Repeater и DataBinder.Eval
Целью этого ретранслятора является создание индекса из A-Z, который при нажатии обновляет информацию на странице.
Ретранслятор имеет кнопку ссылку, например, так:
<asp:LinkButton ID="indexLetter" Text='<%#DataBinder.Eval(Container.DataItem,"letter")%>'
runat="server" CssClass='<%#DataBinder.Eval(Container.DataItem, "cssclass")%>'
Enabled='<%#DataBinder.Eval(Container.DataItem,"enabled")%>'></asp:LinkButton>
Набор данных создается следующим образом:
protected DataSet getIndex(String index)
{
DataSet ds = new DataSet();
ds.Tables.Add("index");
ds.Tables["index"].Columns.Add("letter");
ds.Tables["index"].Columns.Add("cssclass");
ds.Tables["index"].Columns.Add("enabled");
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for (char i = alphaStart; i <= alphaEnd; i++)
{
String cssclass="", enabled="true";
if (index == i.ToString())
{
cssclass = "selected";
enabled = "false";
}
ds.Tables["index"].Rows.Add(new Object[3] {i.ToString(),cssclass,enabled });
}
return ds;
}
Однако, когда я бегу страницы, то «Указанного бросок не действителен исключение "выбрасывается в Text='<%#DataBinder.Eval(Container.DataItem,"letter")'
. Я понятия не имею, почему, я пробовал вручную кастинг в String с (String), я пробовал метод ToString(), я пробовал все.
Кроме того, если в отладчике я добавляю часы для DataBinder.Eval (Container.DataItem, «letter»), возвращаемое значение «A», которое, по моему мнению, должно быть прекрасным для Text Property.
EDIT:
Вот исключение:
System.InvalidCastException был необработанным кодом пользователя
Message = "Указанный бросок не является действительным." Источник = "App_Web_cmu9mtyc"
StackTrace: на ASP.savecondition_aspx .__ DataBinding__control7 (отправитель объекта, EventArgs е) в е: \ Documents и Settings \ Фернанду \ Мои документы \ Visual Studio 2008 \ Projects \ mediTrack \ mediTrack \ saveCondition. ASPX: линия 45 на System.Web.UI.Control.OnDataBinding (EventArgs е) в System.Web.UI.Control.DataBind (Boolean raiseOnDataBinding) в System.Web.UI.Control.DataBind() в системе .Web.UI.Control.DataBindChildren() InnerException:
Любые советы будут с благодарностью, спасибо
EDIT 2: Исправлено! Проблема не была в тегах Text или CSS, но в теге Enabled мне пришлось отбросить ее до логического значения. Проблема заключалась в том, что исключение сигнализировал в текстовом теге, я не знаю, почему
вы уверены, исключение составляет на «букву» а не «включена» часть? –
вы были правы zarembisty! это было то, что я никогда не пытался удалить только Eval из включенной собственности ... спасибо! – Fernando
Я хочу, чтобы MS никогда не привязывала страницу к странице. Было бы намного лучше, если бы вы могли ТОЛЬКО делать это из кода, чтобы избежать этих вопросов. – Phill