Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有updatepanel的DropDownList中的问题_C#_Asp.net_Drop Down Menu_Updatepanel - Fatal编程技术网

C# 带有updatepanel的DropDownList中的问题

C# 带有updatepanel的DropDownList中的问题,c#,asp.net,drop-down-menu,updatepanel,C#,Asp.net,Drop Down Menu,Updatepanel,当我从第一个DropDownList中选择值,然后在第二个DropDownList中显示第一个相关的数据时,我有两个带有更新面板的DropDownList。但在运行时出现问题,它无法显示dropdownlist并持续刷新此页面 所以请帮助解决这个问题 这是我的代码ASPX页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddRoomPrice.aspx.cs" Inherits="AddRoomPrice" %>

当我从第一个DropDownList中选择值,然后在第二个DropDownList中显示第一个相关的数据时,我有两个带有更新面板的DropDownList。但在运行时出现问题,它无法显示dropdownlist并持续刷新此页面

所以请帮助解决这个问题

这是我的代码ASPX页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddRoomPrice.aspx.cs" Inherits="AddRoomPrice" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Presha Admin</title>
    <style type="text/css">
        @import url("css/style.css");
        @import url('css/style_text.css');
        @import url('css/form-buttons.css');
        @import url('css/link-buttons.css');
        @import url('css/menu.css');
        @import url('css/statics.css');
        @import url('css/messages.css');
        @import url('css/table-sorter.css');
        @import url('css/tabs.css');
        @import url('css/forms.css');
        @import url('css/datepicker.css');
        @import url('css/jquery.fancybox-1.3.4.css');
        @import url('css/accordions.css');
        @import url('css/jquery.treeview.css');
        @import url('css/wysiwyg.css');
        @import url('css/wysiwyg.modal.css');
        @import url('css/wysiwyg-editor.css');
    </style>

    <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>

    <link rel="shortcut icon" href="gfx/Favicon.png">

    <link rel="stylesheet" type="text/css" href="css/component.css" />
    <script type="text/javascript" src="js/modernizr.custom.js"></script>

    <!--[if lte IE 8]>
        <script type="text/javascript" src="js/excanvas.min.js"></script>
    <![endif]-->


</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
    <div class="container">
        <div class="logo-labels">
            <a href="Default.aspx"><img id="logo" runat="server" src="~/gfx/logo.png" height="50" /></a>
            <ul>
                <li><asp:Label ID="lblAdmin" runat="server" Text="Wel come "></asp:Label></li>
                <li class="logout"><asp:LinkButton ID="lnkLogout" runat="server" onclick="lnkLogout_Click"><span>Logout</span></asp:LinkButton></li>
            </ul>
        </div>
        <div class="menu-search">
            <ul>
                <li><a href="Default.aspx">Home</a></li>
                <li><a href="#">Hotel</a>
                    <ul>
                        <li><a href="HotelList.aspx">Hotel List</a></li>
                        <li><a href="AddHotel.aspx">Add Hotel</a></li>
                    </ul>
                </li>
                <li><a href="#">Hotel Album</a>
                    <ul>
                        <li><a href="HotelAlbumList.aspx">Album List</a></li>
                        <li><a href="AddHotelAlbum.aspx">Add Album</a></li>
                    </ul>
                </li>
                <li><a href="#">Hotel Facility</a>
                    <ul>
                        <li><a href="HotelFacilityList.aspx">Facility List</a></li>
                        <li><a href="AddHotelFacility.aspx">Add Facility</a></li>
                    </ul>
                </li>
                <li><a href="#">Category</a>
                    <ul>
                        <li><a href="RoomCategoryList.aspx">Category List</a></li>
                        <li><a href="AddRoomCategory.aspx">Add Category</a></li>
                    </ul>
                </li>
                <li class="current"><a href="#">Room Price</a>
                    <ul>
                        <li><a href="RoomPriceList.aspx">Price List</a></li>
                        <li><a href="AddRoomPrice.aspx">Add Price</a></li>
                    </ul>
                </li>
                <li><a href="AddFacility.aspx">New Facility</a></li>
                <li><a href="#">Admin</a>
                    <ul>
                        <li><a href="AdminList.aspx">Admin List</a></li>
                        <li><a href="AddAdmin.aspx">Add Admin</a></li>
                    </ul>
                </li>
                <li><a href="Inquiry.aspx">Inquiry</a></li>
                <li><a href="GetLatitudeLongitude.aspx" target="_blank">Map</a></li>

            </ul>
        </div>
        <div class="breadcrumbs">
            <ul>
                <li class="home"><a href="Default.aspx"></a></li>
                <li class="break">&#187;</li>
                <li><a href="AddRoomPrice.aspx">Add Room Price</a></li>
            </ul>
        </div>
        <div class="section">
            <div class="box">
                <div class="title">
                    <h2>Add/Edit Room Category</h2>
                </div>

                <div class="content forms">
                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                            <div class="line padding-left50">
                                <label>Hotel</label>
                                <asp:DropDownList ID="ddlHotel" runat="server" AutoPostBack="true"
                                    onselectedindexchanged="ddlHotel_SelectedIndexChanged">
                                </asp:DropDownList>
                            </div>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ddlHotel" EventName="selectedindexchanged" />
                        </Triggers>
                    </asp:UpdatePanel>

                    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                        <ContentTemplate>
                            <div class="line padding-left50">
                                <label>Room Category</label>
                                <asp:DropDownList ID="ddlCategory" runat="server">
                                </asp:DropDownList>
                            </div>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ddlHotel" EventName="selectedindexchanged" />
                        </Triggers>
                    </asp:UpdatePanel>
                    <div class="line padding-left50">
                        <label>Single Price</label>
                        <asp:TextBox ID="txtSingle" runat="server" class="medium"></asp:TextBox>
                    </div>
                    <div class="line padding-left50">
                        <label>Double Price</label>
                        <asp:TextBox ID="txtDouble" runat="server" class="medium"></asp:TextBox>
                    </div>
                    <div class="line padding-left50">
                        <label>Extra Bed Price</label>
                        <asp:TextBox ID="txtExtraBed" runat="server" class="medium"></asp:TextBox>
                    </div>
                    <div class="line padding-left50">
                        <label>Meal Plan</label>
                        <asp:TextBox ID="txtMealPlan" runat="server" class="medium"></asp:TextBox>
                    </div>
                    <div class="line padding-left50">
                        <label>Extra Meal Price</label>
                        <asp:TextBox ID="txtExtraMeal" runat="server" class="medium"></asp:TextBox>
                    </div>

                    <div class="line button" style="padding-left:325px">
                        <asp:Button ID="btnSubmit" runat="server" Text="Sumbit" CssClass="btn btn-2 btn-2d" onclick="btnSubmit_Click"></asp:Button>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script type="text/javascript" src="js/superfish.js"></script>
    <script type="text/javascript" src="js/supersubs.js"></script>
    <script type="text/javascript" src="js/hoverIntent.js"></script>
    <script type="text/javascript" src="js/jquery.flot.js"></script>
    <script type="text/javascript" src="js/jquery.graphtable-0.2.js"></script>
    <script type="text/javascript" src="js/jquery-ui.js"></script>
    <script type="text/javascript" src="js/customInput.jquery.js"></script>
    <script type="text/javascript" src="js/jquery.tablesorter.js"></script>
    <script type="text/javascript" src="js/jquery.tablesorter.pager.js"></script>
    <script type="text/javascript" src="js/jquery.sparkbox-select.js"></script>
    <script type="text/javascript" src="js/jquery.fancybox-1.3.4.js"></script>
    <script type="text/javascript" src="js/jquery.filestyle.mini.js"></script>
    <script type="text/javascript" src="js/date.js"></script>
    <script type="text/javascript" src="js/jquery.datepicker.js"></script>
    <script type="text/javascript" src="js/jquery.treeview.js"></script>
    <script type="text/javascript" src="js/jquery.tipsy.js"></script>
    <script type="text/javascript" src="js/jquery.wysiwyg.js"></script>
    <script type="text/javascript" src="js/plugins/wysiwyg.rmFormat.js"></script>
    <script type="text/javascript" src="js/controls/wysiwyg.image.js"></script>
    <script type="text/javascript" src="js/controls/wysiwyg.link.js"></script>
    <script type="text/javascript" src="js/controls/wysiwyg.table.js"></script>
    <script type="text/javascript" src="js/inline.js"></script>

</form>
</body>
</html>
所以请尽快回复


感谢

UpdatePanel控件设计为仅刷新其内容

出于筛选目的,您可以选择以下方法之一:

  • 所有相关的DropDownList必须放在一个UpdatePanel中

  • 第一个UpdatePanel及其内容必须嵌套在第二个UpdatePanel中。(不推荐)
在这两种方法中都不需要声明AsyncPostBackTrigger


祝你好运。

UpdatePanel控件设计为仅刷新其内容

出于筛选目的,您可以选择以下方法之一:

  • 所有相关的DropDownList必须放在一个UpdatePanel中

  • 第一个UpdatePanel及其内容必须嵌套在第二个UpdatePanel中。(不推荐)
在这两种方法中都不需要声明AsyncPostBackTrigger


祝你好运。

调用页面加载函数的不是你,而是ASP.NET的工作方式。当页面上的任何服务器控件(设置为回发的控件)被触发时,该页面将向自身发送消息,从而调用page_load函数

您需要做的是进行一些检查,以区分初始页面加载和回发

if(!IsPostBack) 
{  
//Code when initial loading 
}
 else 
{ 
// code when post back 
}

不是您调用页面加载函数,而是ASP.NET的工作方式。当页面上的任何服务器控件(设置为回发的控件)被触发时,该页面将向自身发送消息,从而调用page_load函数

您需要做的是进行一些检查,以区分初始页面加载和回发

if(!IsPostBack) 
{  
//Code when initial loading 
}
 else 
{ 
// code when post back 
}

也许以下代码可以解决此问题:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (Session["admin"] == null)
            Response.Redirect("Login.aspx");
        else
        {
            lblAdmin.Text = "Welcome " + Session["admin"].ToString();

            ddlHotel.Items.Clear();
            ddlHotel.Items.Add(new ListItem("Select Hotel", ""));
            ddlHotel.AppendDataBoundItems = true;
            ddlHotel.DataSource = bll.getHotel();
            ddlHotel.DataTextField = "HName";
            ddlHotel.DataValueField = "HotelID";
            ddlHotel.DataBind();    

            if (Session["hotelID"] == null)
                ddlHotel.SelectedIndex = 0;
            else
                ddlHotel.SelectedValue = Session["hotelID"].ToString();

            ddlHotel_SelectedIndexChanged(null,null);
        }
    }
}

protected void ddlHotel_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlCategory.Items.Clear();
    ddlCategory.Items.Add(new ListItem("Select Category", ""));
    ddlCategory.AppendDataBoundItems = true;
    ddlCategory.DataSource = bll.getCategoryByID(ddlHotel.SelectedValue);
    ddlCategory.DataTextField = "RCategoryNameBed";
    ddlCategory.DataValueField = "RCategoryID";
    ddlCategory.DataBind();
}

如果没有,我很抱歉,我无法为您提供更多帮助。

也许以下代码可以解决此问题:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (Session["admin"] == null)
            Response.Redirect("Login.aspx");
        else
        {
            lblAdmin.Text = "Welcome " + Session["admin"].ToString();

            ddlHotel.Items.Clear();
            ddlHotel.Items.Add(new ListItem("Select Hotel", ""));
            ddlHotel.AppendDataBoundItems = true;
            ddlHotel.DataSource = bll.getHotel();
            ddlHotel.DataTextField = "HName";
            ddlHotel.DataValueField = "HotelID";
            ddlHotel.DataBind();    

            if (Session["hotelID"] == null)
                ddlHotel.SelectedIndex = 0;
            else
                ddlHotel.SelectedValue = Session["hotelID"].ToString();

            ddlHotel_SelectedIndexChanged(null,null);
        }
    }
}

protected void ddlHotel_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlCategory.Items.Clear();
    ddlCategory.Items.Add(new ListItem("Select Category", ""));
    ddlCategory.AppendDataBoundItems = true;
    ddlCategory.DataSource = bll.getCategoryByID(ddlHotel.SelectedValue);
    ddlCategory.DataTextField = "RCategoryNameBed";
    ddlCategory.DataValueField = "RCategoryID";
    ddlCategory.DataBind();
}


如果没有,我很抱歉,我无法为您提供更多帮助。

我想这一定是页面回发问题。你调试过你的代码吗?是的,我调试过我的代码,它连续调用page_load()事件。这是回发事件问题。你好,Monika,如何解决它?我尽了最大努力,但没有解决。如果你有任何解决方案,请给我并解决它。我已经给出了一个解决方案尝试一下。我想这一定是回发问题。你调试过你的代码吗?是的,我调试过我的代码,它一直被称为page_load()事件。这是回发事件问题。你好,Monika,如何解决它?我尽了最大努力,但没有解决。如果你有任何解决方案,请给我并解决它。我已经给出了一个解决方案,请尝试。你好,珀尔修斯,我尝试过这个,也尝试过删除更新的面板并运行这个代码,然后在它持续刷新页面之后。嗨,VIPUL,我想你应该更改你的页面加载代码。将第一个if-else块移到第二个中(如下所示):
if(!Page.IsPostBack){if(Session[“admin”!=null)lblAdmin.Text=“Wel Come”+Session[“admin”].ToString();else-Response.Redirect(“Login.aspx”);if(Session[“hotelID”!=null)ddlHotel.SelectedValue=Session[“hotelID”].ToString();ddlHotel.DataSource=bll.getHotel());ddlHotel.DataTextField=“HName”ddlHotel.DataValueField=“HotelID”ddlHotel.DataBind();ddlHotel.Items.Insert(0,“选择酒店”);}
我尝试过这个方法,但在第二个dropdownlist中,加载、写入
ddlHotel\u SelectedIndexChanged(null,null)页面中不显示列表值正好位于
ddlHotel.Items.行的后面。插入(0,“选择酒店”)你好,珀尔修斯:记录会显示,但当我在另一家酒店选择时,记录不会更改。你好,珀尔修斯,我尝试过此操作,并尝试删除更新的面板,然后在其持续刷新页面后运行此代码。你好,VIPUL,我想你应该更改页面加载代码。将第一个if-else块移到第二个中(如下所示):
if(!Page.IsPostBack){if(Session[“admin”!=null)lblAdmin.Text=“Wel Come”+Session[“admin”].ToString();else-Response.Redirect(“Login.aspx”);if(Session[“hotelID”!=null)ddlHotel.SelectedValue=Session[“hotelID”].ToString();ddlHotel.DataSource=bll.getHotel());ddlHotel.DataTextField=“HName”ddlHotel.DataValueField=“HotelID”ddlHotel.DataBind();ddlHotel.Items.Insert(0,“选择酒店”);}
我尝试过这个方法,但在第二个dropdownlist中,加载、写入
ddlHotel\u SelectedIndexChanged(null,null)页面中不显示列表值正好位于
ddlHotel.Items.行的后面。插入(0,“选择酒店”)你好,珀尔修斯:显示记录,但当我选择在另一家酒店时,记录不会更改。