2009-07-01 10 views
0

私のaspxページに2つのドロップダウンリストがあり、2番目は最初のリストの選択によってフィルタリングされています。page_loadのカスケードデザインでDropDownListアイテムを選択する方法

ページが読み込まれたときにレコード用のデータベースに保存されたデータで2つのドロップダウンリストを事前に選択するには、Page_Loadのページのデータをバインドするときには機能しません。

私はObjectDataSourceを使用して2つのドロップダウンリストをバインドしています。

<asp:DropDownList ID="ddlStatus" runat="server" Enabled="False" 
onselectedindexchanged="ddlStatus_SelectedIndexChanged" 
AutoPostBack="True" Width="100px" DataSourceID="ObjectDataSource1" 
DataTextField="Status_Desc" DataValueField="Status_Id" /> 

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
OldValuesParameterFormatString="original_{0}" SelectMethod="GetStatusAll" 
TypeName="MyDALTableAdapters.StatusTableAdapter"></asp:ObjectDataSource>  

<asp:DropDownList ID="ddlSubStatus" runat="server" Enabled="False" 
EnableViewState="False" Width="230px" DataSourceID="ObjectDataSource2" 
DataTextField="Sub_Status_Desc" DataValueField="Sub_Status_Id" /> 

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
OldValuesParameterFormatString="original_{0}" SelectMethod="GetSubStatusData" 
TypeName="MyDALTableAdapters.MyStatusSubGetAllTableAdapter"> 
<SelectParameters> 
<asp:ControlParameter ControlID="ddlStatus" DefaultValue="-1" Name="StatusId" 
PropertyName="SelectedValue" Type="Int32" /> 
</SelectParameters> 
</asp:ObjectDataSource> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     // How to I select the values stored for this record? 
    } 
} 

protected void ddlStatus_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ObjectDataSource2.DataBind(); 
} 
+0

plz問題がまだ残っている場合は、完全なページコードを投稿してください... –

答えて

0

それはちょうど私が最初のDropDownListのDataBindをイベントの2番目のDropDownListを結合終わったそれぞれのDropDownListコントロール

ddlStatus.SelectedIndex = [your selected index]; 
ddlSubStatus.SelectedIndex = [your selected index]; 
+0

私は、問題は、2番目のリストが最初のリストの選択に基づいて作成されることです。したがって、2番目のリストの項目はまだ存在しません。 – Picflight

+0

ddlSubStatus.SelectedIndexを "if(!Page.IsPostBack)"の外で設定する必要があります。 –

関連する問題