Как выбрать элементы DropDownList в каскадном дизайне на page_load

Asked
Viewd2051

0

У меня есть 2 раскрывающихся списка на моей странице aspx, второй фильтруется выбором в первом списке.

Как мне предварительно выбрать два раскрывающихся списка с данными, сохраненными в базе данных, для записи при загрузке страницы, это не работает, когда я привязываю данные на странице к Page_Load.

Я использую ObjectDataSource для связывания двух раскрывающихся списков.

 <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();
}
 
  • Пожалуйста, проверьте мой ответ, если проблема все еще существует, опубликуйте свой полный код страницы…

    Muhammad Akhtar02 июля 2009, 06:55

2 ответов

0

В итоге я привязал второй раскрывающийся список к событию DataBind первого раскрывающегося списка.

0

это должен быть случай установки SelectedIndex в каждом элементе управления DropDownList

 ddlStatus.SelectedIndex = [your selected index];
ddlSubStatus.SelectedIndex = [your selected index];
 
  • установка ddlSubStatus.SelectedIndex должна происходить за пределами «if (! Page.IsPostBack)»

    Russ Cam01 июля 2009, 22:23
  • Я пробовал это, проблема в том, что второй список заполняется на основе выбора в первом списке. Итак, элементов во втором списке еще нет.

    Picflight01 июля 2009, 22:08