Добавить валидатор в текстовое поле Datagrid - PullRequest
0 голосов
/ 29 августа 2018

Я хотел бы добавить валидатор для проверки длины (<100 символов) входного текстового поля. Текстовое поле, созданное внутри таблицы данных из привязанного столбца: </p>

<asp:BoundColumn DataField="Comment" HeaderText="Comment"></asp:BoundColumn>

В своем коде я реализовал свое текстовое поле в функции CustomizeItem:

private void CustomizeEditItem(DataGridItem item)
{
  TextBox lCommentTextBox = ((TextBox)item.Cells[(int)DigitalCalendarGridEnum.COMMENT_COLUMN].Controls[0]);
  //RegularExpressionValidator test = new RegularExpressionValidator();
  //test.ID = "regularExpressionValidatorUnique";
  //test.ControlToValidate = lCommentTextBox.UniqueID;//.Replace("$", "_");
  //test.ValidationExpression = "^[\\s\\S]{0,100}$";
  //test.ErrorMessage = "Please enter a maximum of 100 characters";
  //test.Display = ValidatorDisplay.Dynamic;

  //lCommentTextBox.Controls.Add(test);

  lCommentTextBox.Width = Unit.Pixel(90);
  lCommentTextBox.TextMode = TextBoxMode.MultiLine;
  lCommentTextBox.Rows = 4;
}

В комментарии я пытался реализовать Validator, но получил ошибку:

Unable to find control id 'DigitalCalendarGrid$ctl12$ctl21' referenced by the 'ControlToValidate' property of 'regularExpressionValidatorUnique'.

Я также пытался реализовать валидатор, например, в aspx:

 <asp:TemplateColumn HeaderText="Comment">
                    <ItemTemplate>
                        <%# DataBinder.Eval(Container.DataItem, "Comment") %>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tbComment" runat="server" CssClass="inReq" AutoPostBack="True" TextMode="MultiLine" Rows="4" Width="90">
                        </asp:TextBox>
                        <asp:RegularExpressionValidator ID="CommentTextBoxValidator" runat="Server" ControlToValidate="tbComment" ValidationExpression="^[a-zA-Z0-9]^.{0,100}$" ErrorMessage="Comment should not exceed 100 characters" Display="None"></asp:RegularExpressionValidator>
                    </EditItemTemplate>
                </asp:TemplateColumn>

Но: A это испортило мою сетку (слишком большое) и B это не работает.

Где я не прав?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...