В сетке просмотра у меня есть следующее поле шаблона, содержащее текстовое поле
<asp:TemplateField ShowHeader="true" ItemStyle-HorizontalAlign="left" ItemStyle-VerticalAlign="Middle" ItemStyle-Width="106px" HeaderText="Actual Order">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtActualOrder" Columns="4" Text='<%#Eval("QtyOrdered")%>'
CausesValidation="true" onBlur='validate(...)'/>
</ItemTemplate>
</asp:TemplateField>
Когда пользователь выделяет ячейку, я проверяю количество, введенное в текстовое поле, и меняю цвет фона текстового поля на желтый, если он действителен, красный, если недействителен (в javascript).
Затем у меня есть кнопка сохранения, которая отправляет сообщение обратно на сервер и просматривает сетку.Я могу получить вновь введенное текстовое значение из текстового поля, однако я не знаю, что ячейка изменила свой задний цвет на желтый.VS указывает, что ячейка по-прежнему является значением по умолчанию белого цвета.Оператор if ниже всегда ложен, и отладчик VS говорит, что ячейка все еще белая.Кто-нибудь знает, почему при обратной передаче я могу получить новое текстовое значение, но не новый задний цвет ячейки?Как лучше всего пометить мою запись gridviewrow как авторизованную и затем передать это значение на сервер при обратной передаче? Пожалуйста, не подвергайте сомнению мою архитектуру проверки чего-либо на стороне клиента как не лучшую практику.Это требование клиента.
<code>
foreach (GridViewRow row in gvProducts.Rows)
{
TextBox tbActualOrder = (TextBox)row.Cells[3].FindControl("txtActualOrder");
if (tbActualOrder != null)
{
if (tbActualOrder.BackColor != System.Drawing.Color.FromName("yellow"))
{}
}
}