2

RegularExpressionValidatorコントロールのテキストボックスにを追加しようとしてEditItemTemplateGridViewます。

ユーザーが「更新」をクリックすると、入力が間違っている場合、バリデーターが機能します (エラーメッセージが表示されます)。しかし、OnRowUpdating方法では、私は持っていPage.IsValid==trueます。なぜこうなった?

ASPX コード:

<asp:GridView ID="dgvsaldoPV" runat="server" Visible="False" AutoGenerateColumns="False" 
        ShowFooter="True" AllowSorting="True" OnSorting="TaskGridView_SortingSaldoPV" OnRowEditing="gv1_RowEditing" 
        OnRowUpdating="gv1_RowUpdating" onRowCancelingEdit="gv1_RowCancelingEdit" DataKeyNames="ID_CASSA">
        <AlternatingRowStyle BackColor="#FFFFCC" />
        <Columns>

            <asp:TemplateField HeaderText="Saldo" InsertVisible="False" SortExpression="SALDO" >
                <EditItemTemplate >
                    <asp:TextBox ID="txtsaldo" runat="server" validationgroup="saldo" Text='<%# Bind("SALDO") %>'></asp:TextBox>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtsaldo"
                ErrorMessage="Inserisci valori numerici, usare ',' per i decimali" ValidationExpression="^\d*\,?\d+$" validationgroup="saldo"
                    ForeColor="Red" ></asp:RegularExpressionValidator>
                </EditItemTemplate>
                <ItemTemplate >
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("SALDO") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle CssClass="style11"    />
            </asp:TemplateField>

            <asp:CommandField ShowEditButton="True" ShowHeader="false" HeaderStyle-CssClass="headerstyle1"/>
        </Columns>
        <FooterStyle BackColor="#CC0000" ForeColor="White" />
        <HeaderStyle CssClass="headerstyle" />
        <RowStyle HorizontalAlign="Center" VerticalAlign="Middle"/>

    </asp:GridView>
4

1 に答える 1

4

電話してみてください

Page.Validate();

イベントの開始時にGridView.RowUpdating。これにより、すべてのサーバー側バリデーターのチェックが強制されます。その時点ですでに呼び出されていたと思いますが、そうではないようです。

GridView部分的なPostBackを実行している内部にいる場合UpdatePanel、またはPostBackを起動させるコントロールが検証を引き起こすように設定されていない場合(.CausesValidationプロパティがfalseに設定されている場合)、Page.IsValidプロパティがまだ適切に設定されていないことを想像できます。

于 2013-03-21T13:32:19.900 に答える