簡體   English   中英

ModalPopup內部的RequiredFieldValidator導致問題

[英]RequiredFieldValidator inside ModalPopup causing problems

我有一個帶有多個字段的ASP.NET 3.5表單和一個ModalPopup內部的子表單。 我遇到的問題是ModalPopup內部的RequiredFieldValidator。 由於某些原因,它阻止了回發到ModalPopup內部。 驗證器和提交按鈕都具有唯一的相同ValidationGroup。 這是子表單的標記:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RoomBuilder.ascx.cs" Inherits="Admin_Controls_RoomBuilder" %>
<link href="../../../../style/FlexStyle.css" rel="stylesheet" type="text/css" id="style"
    runat="server" visible="false" />
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <div class="form" style="width: 420px; height: 500px; padding: 3px; position: relative;
            text-align: center;">
            <div style="width: 280px">
                <div class="item smalltitle ">
                    Title:

                </div>
                <div class="item">
                    <asp:TextBox ID="txtTitle" runat="server" Width="250px"></asp:TextBox>
                </div>
                <div class="item smalltitle gapontop">
                    Description:
                </div>
                <div class="item">
                    <asp:TextBox ID="txtDesc" runat="server" Width="250px" Height="40px" TextMode="MultiLine"></asp:TextBox>
                </div>
                <div class="item gapontop">
                    <div class="smalltitle floatLeft" style="width: 120px;">
                        Room Number
                    </div>
                    <div class="smalltitle floatLeft" style="width: 120px;">
                        Phone
                    </div>
                </div>
                <div class="item">
                    <div class="floatLeft" style="width: 120px;">
                        <asp:TextBox ID="txtRoomNo" runat="server" Width="100px"></asp:TextBox>
                    </div>
                    <div class="floatLeft" style="width: 120px;">
                        <asp:TextBox ID="txtPhone" runat="server" Width="100px"></asp:TextBox>
                    </div>
                </div>
                <div class="item smalltitle gapontop ">
                    Type:
                </div>
                <div class="item">
                    <asp:TextBox ID="txtType" runat="server" Width="250px"></asp:TextBox>
                </div>
                <div class="item smalltitle gapontop ">
                    Number of Seats:
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatortxtNoSeats" runat="server" ErrorMessage="*" 
                        ControlToValidate="txtNoSeats" ValidationGroup="roomVal"></asp:RequiredFieldValidator>
                </div>
                <div class="item">
                    <asp:TextBox ID="txtNoSeats" runat="server" Width="50px"></asp:TextBox>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Not a number"
                        ControlToValidate="txtNoSeats" ValidationGroup="roomVal" ValidationExpression="[0-9]*"></asp:RegularExpressionValidator>
                </div>
            </div>            
            <!-- ************************************ -->
            <div class="topBorder" style="width: 100%; height: 35px; position: absolute; bottom: -8px;
                right: 2px; text-align: right; padding-top: 11px;">
                <asp:Button ID="btnCancel" runat="server" CssClass="button" Text="Cancel" CausesValidation="false"
                    OnClick="btnCancel_Click" ValidationGroup="roomVal" />
                <asp:Button ID="btnSave" runat="server" CssClass="button" Text="Save" OnClick="btnSave_Click" CausesValidation="true" ValidationGroup="roomVal" />
            </div>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

刪除驗證器(或CausesValidation設置為false)后,子窗體將發布。 RegularExpressionValidators沒有這個問題。 我已經運行了FireBug,但是沒有看到任何明顯的錯誤。

有什么我想念的嗎?

哦,天哪,我太傻了! > :(

找到了問題的原因。 同一控件的另一個副本嵌套在另一個控件中。 並且(當然)具有與我的第一個控件相同的ValidationGroup名稱,所有必填字段驗證程序都無法工作!

哎呀! 每日WTF候選人!

抱歉浪費了大家的時間:(

您能否檢查用於打開彈出窗口的按鈕(或其他控件)和模態對話框擴展器是否在更新面板之外?

我也有modalpopup的奇怪問題。 我建議您嘗試一些不同的方法,例如,如果已經使用過ajaxcontroltoolkit中的numericupdown控件。 因此,您不需要任何驗證器。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<div class="item smalltitle gapontop ">
                    Number of Seats:
                </div>
                <div class="item">
                    <asp:TextBox ID="txtNoSeats" runat="server" Width="50px"></asp:TextBox>             
                    <cc1:NumericUpDownExtender ID="txtNoSeatsExt" runat="server"
                        Enabled="true" Minimum="1" Maximum="100" TargetControlID="txtNoSeats" Width="50" />
                </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM