0

我在gridview中有文本框和一个按钮。单击按钮时,文本框具有验证。但是,当第二次单击按钮时,验证事件永远不会被触发。

<asp:GridView ID="ChapterGridView" 
               EnableSortingAndPagingCallbacks="false" 
               AllowSorting="false" 
               AllowPaging="false" 
               runat="server"                            
               AutoGenerateColumns="False" 
               CellPadding="2" 
               ForeColor="#333333"
               GridLines="None"  
               Width="780px" 
               OnRowCommand="ChapterGridView_OnRowCommand" 
               ShowFooter="False" 
               AutoGenerateDeleteButton="true"
               AutoGenerateEditButton="true"
               onrowediting="ChapterGridView_RowEditing"
               onrowdeleting="ChapterGridView_RowDeleting" 
               onrowcancelingedit="ChapterGridView_RowCancelingEdit" 
               onrowupdating="ChapterGridView_RowUpdating"
               onrowupdated="ChapterGridView_RowUpdated"
               DataKeyNames="ChapterId"
               ValidationGroup="ChapterValidation"
               Visible="true">
            <FooterStyle BackColor="#eeeeee" Font-Bold="True" ForeColor="White" />
            <Columns>
                <asp:TemplateField HeaderText="*End Page" HeaderStyle-HorizontalAlign="Left">
                    <ItemTemplate><%# Eval("EndPage")%></ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="EndPage" runat="Server" Text='<%# Eval("EndPage") %>'></asp:TextBox>
                        <asp:CustomValidator ID="TotalPagesValidator" ValidationGroup="ChapterValidation" OnServerValidate="TotalPages_ServerValidate" EnableClientScript="false" ErrorMessage="Number of pages in chapter are greater than number of pages in entire publication." Display="None" ControlToValidate="EndPage" runat="server" />
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="EndPage" runat="Server"></asp:TextBox>
                        <asp:CustomValidator ID="TotalPagesValidator2" ValidationGroup="ChapterValidation" OnServerValidate="TotalPages_ServerValidate" EnableClientScript="false" ErrorMessage="Number of pages in chapter are greater than number of pages in entire publication." Display="None" ControlToValidate="EndPage" runat="server" />

                        <asp:Button ID="btnInsert" runat="Server" Text="Insert" CommandName="Insert" UseSubmitBehavior="false" ValidationGroup="ChapterValidation" /></span>
                    </FooterTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

编辑的相同验证按预期工作。但不适用于“插入”按钮。有什么建议么?

4

2 回答 2

1

1:你是否设置了断点以确保有回发?是否完全调用了服务器端验证?

2:您可以尝试将插入的验证组更改为编辑以外的其他内容。

编辑将 ValidatorCallOut 与 CustomValidator 与 ServerSide Validation 一起使用存在问题。

http://forums.asp.net/t/1054676.aspx

http://programminginhell.wordpress.com/2008/08/03/hello-world/

这是在 jquery 对话框中显示错误的另一种方式:http ://weblogs.asp.net/gurusakar/archive/2011/03/28/part-3-showing-asp-net-server-side-messages-in-a-自定义对话框服务器端与asp-net-ajax.aspx

于 2012-10-31T02:21:38.230 回答
0

@TrekStir - 感谢您为我指明正确的方向。

问题是有代码在添加一行后使页脚不可见。由于某种原因导致验证代码不触发。我想出了一种在不将页脚设置为不可见的情况下实现功能的方法,这解决了问题。

于 2012-11-02T23:01:15.647 回答