2012-01-09 3 views
2

간단한 질문? footer에 삽입 행이있는 gridview가 있고 해당 행과 edittemplate에 대한 유효성 검사 컨트롤이 있는데 그 행에 대해서만 유효성을 검사하는 방법은 편집 할 때 삽입 행의 유효성을 검사하기 때문입니다. 삽입 행의 유효성을 검사하거나 행을 편집하기 만하면됩니다.행 편집 및 GridView 행 삽입

<asp:GridView ID="PageSettings" runat="server" 
    AllowPaging="True" AllowSorting="True" 
    AutoGenerateColumns="False" 
    AutoGenerateDeleteButton="True" 
    AutoGenerateEditButton="True" 
    DataKeyNames="Id" 
    DataSourceID="ObjectDataSourcePages" 
    OnLoad="PageSettings_Load"   
    OnRowDataBound="PageSettings_DataBound" 
    OnRowCommand="PageSettings_RowCommand" 
    OnRowCreated="PageSettings_RowCreated" 
    OnRowEditing="PageSettings_RowEditing" 
    OnRowCancelingEdit="PageSettings_RowCancelingEdit" 
    OnRowUpdating="PageSettings_RowUpdating"  
    OnPageIndexChanging="PageSettings_PageIndexChanging" 
    OnSorting="PageSettings_Sorting" 
    OnSorted="PageSetting_Sorted"  
    PageSize="2" 
    ShowFooter="True" 
    ShowHeaderWhenEmpty="True"> 
    <Columns> 
     <asp:TemplateField HeaderText="Page Name" HeaderStyle-HorizontalAlign="Left" SortExpression="Name"> 
      <ItemTemplate> 
       <%# Eval("Name") %> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="Name" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox> 
       <asp:RequiredFieldValidator ID="valRequireName" runat="server" 
        ControlToValidate="Name" 
        CssClass="gridview-error"  
        Display="Dynamic" 
        SetFocusOnError="true">*</asp:RequiredFieldValidator>  
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="InsertName" runat="server"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="valRequireInsertName" runat="server" 
        ControlToValidate="InsertName" 
        Display="Dynamic" 
        SetFocusOnError="true">*</asp:RequiredFieldValidator> 
      </FooterTemplate>    
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Path" HeaderStyle-HorizontalAlign="Left" SortExpression="Path"> 
      <ItemTemplate> 
       <%# Eval("Path") %> 
      </ItemTemplate> 
      <EditItemTemplate>      
       <asp:TextBox ID="Path" runat="server" Text='<%# Bind("Path") %>'></asp:TextBox> 
       <asp:RequiredFieldValidator ID="valRequirePath" runat="server" 
        ControlToValidate="Path" 
        Display="Dynamic" 
        SetFocusOnError="true">*</asp:RequiredFieldValidator>  
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="InsertPath" runat="server"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="valRequireInsertPath" runat="server" 
        ControlToValidate="InsertPath" 
        Display="Dynamic" 
        SetFocusOnError="true">*</asp:RequiredFieldValidator> 
      </FooterTemplate>    
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Route Value" HeaderStyle-HorizontalAlign="Left" SortExpression="RouteValue"> 
      <ItemTemplate> 
       <%# Eval("RouteValue") %> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="RouteValue" runat="server" Text='<%# Bind("RouteValue") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="InsertRouteValue" runat="server"></asp:TextBox> 
      </FooterTemplate>    
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="RegExp" HeaderStyle-HorizontalAlign="Left" SortExpression="RegExp"> 
      <ItemTemplate> 
       <%# Eval("RegExp") %> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="RegExp" runat="server" Text='<%# Bind("RegExp") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="InsertRegExp" runat="server"></asp:TextBox> 
      </FooterTemplate>    
     </asp:TemplateField> 
    </Columns>     
</asp:GridView> 

답변

2

당신은

SaveRecords 각 작업에 대해 별도의 그룹을 지정하시오

검증 그룹

을 사용할 수 있습니다

&

EditRecords

. Save/Edit 단추 &에 해당 유효성 검사 컨트롤을 지정하여 해당 이벤트에 대해 유효성 검사를 실행해야합니다. MSDN

0
긴 시간 후

하지만 당신은 고유 한 이름을 가진 validationgroup의 RequiredFieldValidator 바닥 글에 추가하고 버튼

를 추가하려면이 validationgroup을 추가해야합니다