ValidatorCalloutExtender не отображается в Gridview - PullRequest
0 голосов
/ 08 июня 2011

Название говорит само за себя, но здесь ситуация.У меня есть страница с 2 сетками.Первый используется для поиска продуктов, которые вы хотите использовать.Эти статьи могут быть добавлены в другое gridview.Это второе сеточное представление содержит все выбранные элементы с текстовым полем, где пользователь может изменить сумму, которую он хочет использовать.

Теперь возникает проблема, я добавил в текстовое поле valdiator, который гарантирует, что сумма небольше, чем доступно на складе.

Я добавил ValidatorCalloutExtender в этот валидатор.Всякий раз, когда проверка вызвана, сообщение не отображается.Валидатор работает, потому что я не могу идти дальше, пока я не изменю сумму на правильное значение.

Класс css, который я использовал для настройки ValidatorCalloutExtender, работает на всех других моих страницах.где он не используется в виде сетки.

Есть ли способ заставить эту работу работать, если она не используется в editTemplate вида сетки?

1 Ответ

2 голосов
/ 08 июня 2011

Я предполагаю, что это не работает из-за ValidationGroup . Он должен быть уникальным для всех строк GridView. Это может быть достигнуто, например, с помощью события GridView RowDataBound , чтобы установить его программно:

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
      if (e.Row.RowType == DataControlRowType.DataRow)
      {
            TextBox tbx = (TextBox)e.Row.FindControl("MyTextBox");
            RequiredFieldValidator rfv = (RequiredFieldValidator)e.Row.FindControl("MyReq");
            string validationGroupText = "ValidationTest" + (e.Row.DataItemIndex + 1).ToString();
            tbx.ValidationGroup = validationGroupText;
            rfv.ValidationGroup = validationGroupText;
      }
}
...