简体   繁体   中英

Using an asp.net webform ValidationSummary with bootstrap modal

I am trying to do some styling on my page, and I really would like to implement the built -in modal that bootstrap has for displaying my ValidationSummary control, along with any other messages I may want. So far, I can get the modal to pop up, but the button never reaches my OnClick method, and it does not display the validation summary. I assume this has something to do with posting, and I was wondering if there is a way around this, and if I can still implement the modal?

My page looks something like this currently:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
    <script>
        //MODAL SCRIPT
        $('#myModal').on('shown.bs.modal', function () {
            $('#myInput').focus()
        })
    </script>


...


<!-- PROGRAM NAME -->
                    <p>
                        <asp:Label ID="ProgramName_Label" runat="server" Text="Program Name:" CssClass="label-program"></asp:Label>
                        <asp:TextBox ID="ProgramName" runat="server" class="form-control text-fix"></asp:TextBox>
                    </p>

                    <asp:RequiredFieldValidator ID="ProgramNameValidator" runat="server" ErrorMessage="Program Name is required." ControlToValidate="ProgramName"></asp:RequiredFieldValidator>

...

 <!-- SUBMIT BUTTON -->
        <div class="col-md-12" align="center">
            <asp:LinkButton ID="SubmitProgram" runat="server" OnClick="SubmitProgram_Click" 
                CssClass="listview-buttons"  Font-Underline="false" data-toggle="modal"
                data-target="#myModal">Submit Program</asp:LinkButton>
        </div>

        <!-- BOOTSTRAP MODAL DIALOG -->
        <div id="myModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="modal-body">
                        <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
                        <asp:Label ID="ValidationList" runat="server"></asp:Label>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>

All you have to do is to add this function on your page:

   function WebForm_OnSubmit() {
            if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
                $('#myModal').modal('show');
                return false;
            }
            return true;
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM