如何在不重新加载页面的情况下将项添加到DropDownList

时间:2015-10-01 11:48:37

标签: c# asp.net

我的页面中有2个DropDownLists      1.ddlVehicleBrand      2.ddlVehicleModel

我在Page_Load事件中从数据库向ddlVehicleBrand添加了汽车品牌。没问题。 但是如果我在ddlVehicleBrand列表中选择丰田,那么所有丰田模型都应加载到ddlVehicleModel列表中,而不重新加载整个页面。

我使用了ddlVehicleBrand的SelectedIndexChanged事件。但是当我更改所选索引时,整个页面将被刷新,并且所选的ddlVehicleBrand索引将是第一个值。

我的代码如下

<body>
<form id="form1" runat="server" >
<div>
   <asp:DropDownList ID="ddlVehicleBrand" runat="server" onselectedindexchanged="ddlVehicleBrand_SelectedIndexChanged" AutoPostBack="true"/>
    <br />
    <br />
    <asp:DropDownList ID="ddlVehicleModel" runat="server" />
    <br />
    <br />
    <br />
</div>
</form>

当我更改第一个DropDownList的选定索引时,会自动调用Page_Load事件。 如何在不刷新整个页面的情况下为每个品牌加载特定模型。 提前致谢

2 个答案:

答案 0 :(得分:2)

确保你绑定了VehicleBrands!页面加载中的回发

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        load brands here...
    }
}

并使用更新面板来避免页面刷新。请仔细阅读UpdatePanel Example

答案 1 :(得分:1)

您应该将所有内容都包装在更新面板中,它将阻止页面点击自动回送。

&#13;
&#13;
<body>
<form id="form1" runat="server" >
<div>
  <asp:UpdatePanel>
  <ContentTemplate>
   <asp:DropDownList ID="ddlVehicleBrand" runat="server" onselectedindexchanged="ddlVehicleBrand_SelectedIndexChanged" AutoPostBack="true"/>
    <br />
    <br />
    <asp:DropDownList ID="ddlVehicleModel" runat="server" />
    <br />
    <br />
    <br />
              
  </ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
&#13;
&#13;
&#13;

让我知道它是否有帮助:)

很抱歉我应该指出你需要分配一个ID和runat属性,如下所示:

&#13;
&#13;
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
&#13;
&#13;
&#13;