簡體   English   中英

在asp.net中的“選擇”值頁面上添加兩個DropDownList

[英]Add two DropDownList to page on “Select” value in asp.net

我正在嘗試像大多數酒店一樣在asp中創建預訂頁面。 我似乎無法為該問題編碼/找到正確的解決方案。

我的問題是用戶可以預訂一到四個房間。 如果用戶選擇,假設有2個房間,那么我必須為所選房間再設置兩個asp:DropDownList,用於成人/兒童。

現在,我的booking.aspx頁面包含:

CheckIn (Asp:TextBox)
CheckOut (Asp:TextBox)
Rooms (Selected tag - Default value = 1)
Adults (Asp:DropDownList)
Children (Asp:DropDownList)

“房間”的默認值為1,如果用戶在下拉列表中選擇“ 2”,則應該再出現兩個Asp:DropDownList。

我試圖實現DropDownLists並設置Type =“ Hidden”,但是在頁面加載時,實際上可以在隱藏該字段之前看到它。

還嘗試了一些JQuery的Hide();方法。 方法,但此方法也不起作用,因為您也可以在隱藏之前一秒鍾看到它。

碼:

<div class="contentbooking">

                <div class="form-group">
                    <asp:Label ID="CheckinLabel" runat="server" Text="Check-in Date"></asp:Label>
                    <asp:TextBox ID="datetimepicker1" ClientIDMode="Static" runat="server" CssClass="form-control"></asp:TextBox>
                </div>
                <div class="form-group">
                    <asp:Label ID="CheckoutLabel" runat="server" Text="Check-out Date"></asp:Label>
                    <asp:TextBox ID="datetimepicker2" ClientIDMode="Static" runat="server" CssClass="form-control"></asp:TextBox>
                </div>

                <div class="form-group">
                    <asp:Label ID="RoomsLabel" runat="server" Text="Rooms:"></asp:Label>
                    <select class="form-control" id="rooms">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                    </select>
                </div>
                <div class="form-horizontal">
                    <div class="form-group">
                        <div class="col-sm-6">
                            <asp:Label ID="Label2" runat="server" Text="#1:"></asp:Label>
                            <br />
                            <asp:Label ID="Label1" runat="server" Text="Adult:"></asp:Label>
                            <asp:DropDownList ID="adults" CssClass="form-control" runat="server">
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                        <div class="col-sm-6">
                            <br />
                            <asp:Label ID="Label3" runat="server" Text="Children:"></asp:Label>
                            <asp:DropDownList ID="childrens" CssClass="form-control" runat="server">
                                <asp:ListItem>0</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                    </div>

                    <!-- From group for two rooms -->
                    <div class="form-group">
                        <div class="col-sm-6">
                            <asp:Label ID="Label4" type="hidden" runat="server" Text="#2:"></asp:Label>
                            <br />
                            <asp:DropDownList ID="adults2" type="hidden" ClientIDMode="static" CssClass="form-control" runat="server">
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                        <div class="col-sm-6">
                            <br />                                
                            <asp:DropDownList ID="childrens2" type="hidden" ClientIDMode="static" CssClass="form-control" runat="server">
                                <asp:ListItem>0</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                    </div>
                </div>

                <div class="form-group">
                    <br />
                    <asp:Button ID="Button7" runat="server" OnClick="checkForResevation" Text="Check Availability" CssClass="my-btn" />
                </div>
            </div>

有沒有一種方法可以讓它在頁面加載之前隱藏起來,所以您看不到它,因為那樣我就可以了。

希望有人可以看看。

我不確定如何准確地實現這一目標,但是為什么不使用razer sytax @if語句嘗試一下。

詳細信息可以在這里找到: http//haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/

您可以嘗試將初始屬性設置為display:none的css用於2個下拉列表,然后在要求下拉列表可見時,更新display:block。

protected void Page_Load(object sender, EventArgs e)
{
   adults2.Visible = false;
   childrens2.Visible = false;
}

你嘗試了嗎?

我找到了我想要的,並想顯示答案。 在JavaScript / Jquery腳本中添加了以下代碼:

        $(function () {
            $('#<%=rooms.ClientID%>').on('change', function () {
                $("#<%=adults2.ClientID%>,#<%=childrens2.ClientID%>,# <%=HiddenLabel2.ClientID%> ")[this.value == "2" ? "show" : "hide"]();                    
            });
        }); 

為了使其工作..我需要在我的css文件中為Asp:DropDownLists添加display:none。

暫無
暫無

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

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