2009-07-01 8 views
0

J'ai deux listes déroulantes sur ma page aspx, la seconde est filtrée par la sélection dans la première liste.Comment sélectionner les éléments DropDownList en cascade de conception sur page_load

Comment puis-je présélectionner les deux listes déroulantes avec les données enregistrées dans la base de données pour l'enregistrement lorsque la page se charge, cela ne fonctionne pas lorsque je lie des données sur la page sur Page_Load. J'utilise ObjectDataSource pour lier les deux listes déroulantes.

<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 vérifier ma réponse, si le problème existe toujours, puis postez votre code de page complet ... –

Répondre

0

J'ai fini par lier la deuxième dropdownlist sur l'événement DataBind du premier dropdownlist.

0

il devrait juste être un cas de définition de la propriété SelectedIndex sur chaque contrôle DropDownList

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

J'ai essayé, le problème est que la deuxième liste remplit en fonction de la sélection dans la première liste. Ainsi, les éléments de la deuxième liste ne sont pas encore là. – Picflight

+0

La définition de ddlSubStatus.SelectedIndex doit se produire en dehors de "if (! Page.IsPostBack)" –

Questions connexes