1
我有一個更新面板內的下拉列表內容頁:下拉列表
<asp:UpdatePanel ID="upVehicleFilter" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList id="ddlYear" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlYear_SelectedIndexChanged"></asp:DropDownList>
<asp:DropDownList id="ddlMake" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlMake_SelectedIndexChanged"></asp:DropDownList>
<asp:DropDownList id="ddlModel" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlModel_SelectedIndexChanged"></asp:DropDownList>
<asp:DropDownList id="ddlEngine" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlEngine_SelectedIndexChanged"></asp:DropDownList>
<asp:DropDownList id="ddlAspiration" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlAspiration_SelectedIndexChanged"></asp:DropDownList>
<asp:DropDownList id="ddlEngVin" runat="server"></asp:DropDownList>
<asp:ImageButton id="btnGo" runat="server" ImageUrl="/images/buttons/btn_go.gif" OnClick="btnVehicleGo_Click"></asp:ImageButton>
</ContentTemplate>
</asp:UpdatePanel>
邏輯(事件)也存在於內容頁面:
protected void ddlYear_SelectedIndexChanged(object sender, EventArgs e)...
protected void ddlMake_SelectedIndexChanged(object sender, EventArgs e)...
protected void ddlModel_SelectedIndexChanged(object sender, EventArgs e)...
protected void ddlEngine_SelectedIndexChanged(object sender, EventArgs e)...
protected void ddlAspiration_SelectedIndexChanged(object sender, EventArgs e)...
protected void btnVehicleGo_Click(object sender, ImageClickEventArgs e)...
基本上它是一個級聯下拉列表。在Year上選擇某個值時,它將填充Make等。
現在我的問題是,我需要將標記移動到母版頁並保留內容頁上的邏輯。我將如何能夠實現這一目標?我有什麼選擇和/或替代方案?
試過了。儘管如此,我遇到了有關內容的問題,看起來像是更新面板的問題。問題#1:它不刷新內容。事件雖然被觸發了。問題#2:當我第二次在下拉列表中選擇一個值時,它會刷新整個頁面並且內容無效。我只是在我有的第一個DropDownList上測試它,這是ddlYear。和我ddlYears事件,我有這樣的代碼: – 2010-08-05 19:36:46
保護無效ddlYear_SelectedIndexChanged(對象發件人,EventArgs的){ HtmlGenericControl divVehicleFilter =(HtmlGenericControl)this.Master.FindControl( 「divVehicleFilter」); (UpdatePanel)divVehicleFilter.FindControl(「upVehicleFilter」); DropDownList ddlMake =(DropDownList)upVehicleFilter.FindControl(「ddlMake」); DropDownList ddlModel =(DropDownList)upVehicleFilter.FindControl(「ddlModel」); DropDownList ddlEngine =(DropDownList)upVehicleFilter.FindControl(「ddlEngine」); – 2010-08-05 19:37:25
DropDownList ddlAspiration =(DropDownList)upVehicleFilter.FindControl(「ddlAspiration」); DropDownList ddlEngVin =(DropDownList)upVehicleFilter.FindControl(「ddlEngVin」); //製作 ddlMake.Items.Clear(); (new ListItem(「Select Make ...」,「 - 1」)); 使用(數據表DT = GetVehicleMake()){ 的foreach (DataRowView的在dt.DefaultView RV) { ddlMake.Items.Add(新的ListItem(RV [ 「製作」]。的ToString()。修剪(), RV [ 「製作」]的ToString()修剪()))。。 } } – 2010-08-05 19:37:46