0

ネット申し込み。このアプリケーションを使用すると、ユーザーは一時的にゲスト接続を追加できます。このために、ユーザーがゲストを追加できるモーダル ダイアログを開くボタンがあります。入力は、名、姓、会社、および時間でなければなりません。検証コントロールと ValidationGroup を使用します。Validationcontrols は入力を忘れたかどうかをチェックしますが、「追加」をクリックするとコードが実行されません。私は単純なdivでこれを試しますが、同じ方法です:

これが私のaspxコードです:

<div id="add">

                    <div id="Div2" class="popupConfirmation" runat="server" style="width:350px; height:290px;">

                          <div class="bodycontrol">
                            <table>  
                        <tr>
                            <td><asp:Label ID="Label3" runat="server" Text="Vorname"></asp:Label></td>
                            <td><asp:TextBox ID="TextBox1" runat="server" ValidationGroup="valid" ></asp:TextBox></td>
                            <td><asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox1"></asp:RequiredFieldValidator></td>
                        </tr>
                        <tr>
                            <td><asp:Label ID="Label4" runat="server" Text="Nachname"></asp:Label></td>
                            <td><asp:TextBox ID="TextBox2" runat="server" ValidationGroup="valid"></asp:TextBox></td>
                            <td><asp:RequiredFieldValidator ID="RequiredFieldValidator2" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox2"></asp:RequiredFieldValidator></td>
                        </tr>
                        <tr>
                            <td><asp:Label ID="Label5" runat="server" Text="Firma"></asp:Label></td>
                            <td><asp:TextBox ID="TextBox3" runat="server" ValidationGroup="valid"></asp:TextBox></td>
                            <td><asp:RequiredFieldValidator ID="RequiredFieldValidator3" ValidationGroup="valid" runat="server" ForeColor="red" ErrorMessage="*" ControlToValidate="TextBox3"></asp:RequiredFieldValidator></td>
                        </tr>
                    </table>
                           <br />
                            <table>
                        <tr>
                            <td><asp:LinkButton ID="LinkButton1" runat="server" class="GuestButtons"  Text="Hinzufügen" ValidationGroup="valid" onclick="btn_GuestListViewAddDialog_YES_Click" ></asp:LinkButton></td>
                            <td><asp:LinkButton ID="LinkButton2" runat="server" class="GuestButtons" Text="Abbrechen" ValidationGroup="never"></asp:LinkButton></td>
                        </tr>
                    </table>
                           <br />
                            <table>
                        <tr>
                            <td><asp:Label ID="Label10" runat="server" Text="*Bitte alle Felder ausfüllen"></asp:Label></td>
                        </tr>
                    </table>
                          </div>

                    </div>          

               </div>

ここに私のC#コードがあります:

   protected void btn_GuestListViewAddDialog_YES_Click(object sender, EventArgs e)
            {
                if (Page.IsValid) //Here i make a breakpoit but it doesn't use this code :( 
                {

    ...//here is my code

}

}

リンクボタンをクリックすると、これは私のスクリプトブロックにあります:

WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$lw_content$LinkButton1", "", true, "valid", "", false, true))
4

1 に答える 1

1

サーバー側で検証を強制したい場合は、Page.Validate()チェックする前に呼び出す必要がありますPage.IsValid

protected void btn_GuestListViewAddDialog_YES_Click(object sender, EventArgs e)
{
    Page.Validate();
    if (Page.IsValid) 
    {

リンクボタンがクリックされた場合にこのグループを検証する場合は、同じ-group がLinkButton必要です。検証をトリガーしたくない場合は、別のグループが必要です。ValidationGroupvalid

編集:ただし、デフォルトでは aであり、 a も指定している ため、Page.Validate冗長である必要がCausesValidationあります。だから私は途方に暮れています。trueLinkButtonValidationGroup

于 2013-10-29T08:03:32.287 に答える