我的页面中有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事件。 如何在不刷新整个页面的情况下为每个品牌加载特定模型。 提前致谢
答案 0 :(得分:2)
确保你绑定了VehicleBrands!页面加载中的回发
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
load brands here...
}
}
并使用更新面板来避免页面刷新。请仔细阅读UpdatePanel Example
答案 1 :(得分:1)
您应该将所有内容都包装在更新面板中,它将阻止页面点击自动回送。
<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;
让我知道它是否有帮助:)
很抱歉我应该指出你需要分配一个ID和runat属性,如下所示:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
&#13;