Вы получаете там. У вас есть несколько проблем:
Вы определяете arr в addToFavourites, поэтому каждый раз, когда он вызывается, создается новый arr, который доступен только внутри этой функции. По сути, вы создаете массив, добавляете элемент, а затем он выбрасывается в мусор.
Поскольку ваш MovieRow представляет один фильм, вам нужно иметь компонент-обертку, который поддерживает arr как часть своего состояния. Вы также определите здесь addToFavourites и затем передадите это каждому компоненту MovieRow, убедившись, что передали хотя бы идентификатор фильма, чтобы вы знали, какой фильм добавить в избранное
I ' я не уверен, что movieRow в addToFoving делает, потому что вы назначаете его, а затем никогда не используете его. По сути, здесь вы впервые определяете movieRow для объекта глобального окна, а затем переназначаете его при каждом нажатии. Это кажется ненужным.
Вы также захотите переместить pickRandom в родительский компонент, который поддерживает ваш список избранного.
Надеюсь, это заставит вас двигаться в правильном направлении. Дайте мне знать, если у вас есть вопросы
Добавить пользовательский валидатор и вручную установить его IsValid
и ErrorMessage
свойства. Примерно так:
<asp:panel ID="ErrorsPanel" runat="server" CssClass="ErrorSummary">
<asp:CustomValidator id="CustomValidator1" runat="server"
Display="None" EnableClientScript="False"></asp:CustomValidator>
<asp:ValidationSummary id="ErrorSummary" runat="server"
HeaderText="Errors occurred:"></asp:ValidationSummary>
</asp:panel>
В коде:
//
// Update the database with the changes
//
string ErrorDetails;
if (!Db.Update(out ErrorDetails))
{
CustomValidator1.IsValid = false;
CustomValidator1.ErrorMessage = ErrorDetails;
}
Чтобы добавить сообщение об ошибке в сводку проверки, вы можете использовать свойство EnableClientScript ValidationSummary и другие элементы управления проверкой. Установите для параметра EnableClientScript значение false для всех из них:
<asp:ValidationSummary
HeaderText="You must enter a value in the following fields :"
DisplayMode="BulletList"
EnableClientScript="false"
runat="server"/>
Для выделения элемента управления нет, это невозможно с текущими элементами управления.
Но я поставил свои элементы проверки рядом со связанными элементами управления и установил их свойство Text как «*». Затем, если проверка не пройдена, она появляется рядом с ошибочным элементом управления.
Возможно, вы можете использовать специальный валидатор, чтобы выделить неисправный элемент управления. Но вы должны написать свою собственную реализацию.