Передача аргументов на стороне сервера CustomValidator - PullRequest
1 голос
/ 23 февраля 2012

Я хочу иметь возможность передавать аргументы на сервер CustomValidator.

Я хочу это, потому что элемент управления, который я хочу проверить, находится в поле редактирования таблицы.

<telerik:GridTemplateColumn DataField="numbercancelled" DataType="System.Int32" FilterControlAltText="Filter numbercancelled column"
                        HeaderText="numbercancelled" SortExpression="Numbercancelled" UniqueName="numbercancelled">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblNumbercancelled" Text='<%# Eval("numbercancelled") %>'>
                            </asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="tbNumbercancelled" Text='<%# Bind("numbercancelled") %>'
                                MaxLength="10">
                            </asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="This is a required field"
                                ControlToValidate="tbNumbercancelled" Display="Dynamic"></asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Please enter a number higher than 0"
                                ValidationExpression="^(0|[1-9][0-9]*)$" ControlToValidate="tbNumbercancelled"
                                Display="Dynamic"></asp:RegularExpressionValidator>
                            <asp:CustomValidator ID="NumberCancelledValidator"
                                runat="server" ErrorMessage="CustomValidator" ControlToValidate="tbNumbercancelled"
                                OnServerValidate="NumberCancelledValidator_ServerValidate"
                                ></asp:CustomValidator>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>

Я хочу передать идентификатор редактируемой в данный момент строки, потому что способ ее проверки зависит от строки, которую вы редактируете.

CustomValidator cvalid = (CustomValidator)source;
GridEditFormItem gv = (GridEditFormItem)cvalid.NamingContainer;

int ItemIndex = ((GridEditFormItem)gv.EditFormCell.NamingContainer).ItemIndex;
var grid = InkoopDetailGridEdit;
int ID = int.Parse(((Label)((GridDataItem)grid.Items[ItemIndex]).Cells[0].FindControl("ID")).Text);

1 Ответ

2 голосов
/ 23 февраля 2012

Вы можете получить индекс строки, используя следующий пример:

CustomValidator cvalid = (CustomValidator)source;
GridViewRow gv = cvalid.NamingContainer;
int index = gv.RowIndex;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...