2012-02-23 5 views
1

서버 측 CustomValidator에 인수를 전달할 수 있기를 원합니다.서버 측에 인수 전달 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> 

이 검증 어떻게 당신이 편집중인 행에 의존하기 때문에 나는 현재 편집중인 행의 ID를 전달하고자합니다. 결국

내가이 함께했다 : 그것은 내 질문에 직접 대답하지 않았다

CustomValidator cvalid = (CustomValidator)source; 
GridViewRow gv = cvalid.NamingContainer; 
int index = gv.RowIndex; 

답변

2

저를 답으로 인도하십시오.
+0

조차 힘든, 그것은했다 : 당신은 다음의 예를 사용하여 행 인덱스를 얻을 수

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); 
NomenNescio