C# DropDownList重置为第一项
我有两个绑定到objectdatasource的DropDownListC# DropDownList重置为第一项,c#,asp.net,webforms,C#,Asp.net,Webforms,我有两个绑定到objectdatasource的DropDownList <asp:DropDownList ID="ddlProgram" runat="server" DataSourceID="ProgramsDS" DataTextField="NAME" DataValueField="ID" AutoPostBack="True" OnSelectedIndexChanged="ddlProgram_SelectedIndexChanged"> &
<asp:DropDownList ID="ddlProgram" runat="server" DataSourceID="ProgramsDS"
DataTextField="NAME" DataValueField="ID" AutoPostBack="True"
OnSelectedIndexChanged="ddlProgram_SelectedIndexChanged">
</asp:DropDownList>
<asp:ObjectDataSource ID="ProgramsDS" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="WebAdminTools.DATA.DSTableAdapters.ProgramTA"
UpdateMethod="Update">
</asp:ObjectDataSource>
<br/>
<asp:DropDownList runat="server" ID="ddlVersion" AutoPostBack="True"
OnSelectedIndexChanged="ddlVersion_SelectedIndexChanged" Width="158px"
DataSourceID="VersionDS" DataTextField="VERSION"
DataValueField="PROGRAM_ID"/>
<asp:ObjectDataSource ID="VersionDS" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"
TypeName="WebAdminTools.DATA.DSTableAdapters.UpdateTA">
<SelectParameters>
<asp:ControlParameter ControlID="ddlProgram" DefaultValue="0"
Name="P_ID" PropertyName="SelectedValue" Type="Int32"/>
</SelectParameters>
</asp:ObjectDataSource>
我想这是因为回邮。如果您正在表单加载时将值设置为dropdownlist,请确保将其放入if(!Page.IsPostBack)中。显示
ddlVersion\u SelectedIndexChanged
我在此处设置了断点。我已经用Ajax控件工具包级联DropDownlistu解决了这个问题。你是否将autopostback设置为true?关于你在selectedindexchange上设置的断点,它在你打开它之前不会触发。在你更改Dropdown2后页面是否重新加载?看起来什么都没有发生。但如果我尝试导航回第二个下拉列表,则将选定索引设置为最后一项
protected void ddlVersion_SelectedIndexChanged(object sender, EventArgs e)
{
GetCompaniesForUpdate();
}
private void GetCompaniesForUpdate()
{
ProgramVersionTA ta = new ProgramVersionTA();
var dt = new DS.ProgramsVersionsDataTable();
ta.Fill(dt, Convert.ToInt32(ddlVersion.SelectedValue));
var selectedVersion = Version.Parse(ddlVersion.SelectedValue);
var companyForUpdate = dt.Where(c => Version.Parse(c.MAX_AVAILABLE_VERSION) > selectedVersion
&& Version.Parse(c.VERSION) < selectedVersion);
lbCompanies.DataSource = companyForUpdate;
lbCompanies.DataMember = "NAME";
lbCompanies.DataBind();
}