我有一组级联下拉列表,但我希望在页面加载时默认选择值为。 现在,我的下拉列表默认为DDL中的第一个值。 (ASP.NET C#)
和代码(问题是“DDL_Assignment”下拉列表)...
<tr>
<td>
<b>Position Type:</b>
</td>
<td>
<asp:Label ID="Lbl_PositionType" runat="server" />
</td>
</tr>
<tr id="TR_Occupation" runat="server">
<td>
<b>Select Occupation:</b>
</td>
<td>
<asp:DropDownList ID="DDL_Occupation" runat="server" DataSourceID="DataSource_Occupation" DataTextField="Position" DataValueField="Position"
AutoPostBack="True" OnSelectedIndexChanged="DDL_Occupation_SelectedIndexChanged">
</asp:DropDownList>
<asp:ObjectDataSource ID="DataSource_Occupation" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetPositions"
TypeName="HumanResourceTableAdapters.PositionTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="Lbl_PositionType" Name="PositionType"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:TextBox ID="TB_Occupation" runat="server" />
</td>
</tr>
<tr>
<td>
<b>Select Assignment Name:</b>
</td>
<td>
<asp:UpdatePanel ID="UP_Assignment" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DDL_Assignment" runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="DDL_Assignment_SelectedIndexChanged" />
<asp:ObjectDataSource ID="DataSource_Assignment" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetAssignments"
TypeName="HumanResourceTableAdapters.PositionTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="DDL_Occupation" Name="Position"
PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="Lbl_PositionType" Name="PositionType"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="DataSource_AssignmentHourly" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetAssignmentByPosType"
TypeName="HumanResourceTableAdapters.PositionTableAdapter">
<SelectParameters>
<asp:ControlParameter ControlID="Lbl_PositionType" Name="PositionType"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:TextBox ID="TB_Assignment" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DDL_Occupation" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>
代码背后 “posRow.Assignment”输出正确的值...下拉列表由于某种原因没有接受它
Position1TableAdapter position1TableAdapter =
new Position1TableAdapter();
HumanResource.Position1Row posRow =
position1TableAdapter.GetData(Convert.ToInt32(Request.QueryString["PositionID"]))[0];
DDL_Assignment.DataTextField = "AssignmentName";
DDL_Assignment.DataValueField = "AssignmentName";
DDL_Assignment.DataSourceID = "DataSource_Assignment";
DDL_Occupation.SelectedValue = posRow.Position;
DDL_Assignment.SelectedValue = posRow.Assignment;
TB_Assignment.Text = posRow.Assignment;
TB_Replaced.Text = posRow.Replaced;
DDL_PositionDays.SelectedValue = posRow.PositionDays.ToString();
DDL_ContractDays.SelectedValue = posRow.ContractDays.ToString();
DDL_PositionHours.SelectedValue = posRow.PositionHours.ToString();
DDL_Location.SelectedValue = posRow.Location.ToString();
TB_Contract.Text = posRow.IsContractInformationNull() ? null : posRow.ContractInformation;
DDL_1yrContractReason.SelectedValue = posRow.Isposition_1yrcntrctrsnIDNull() ? null : posRow.position_1yrcntrctrsnID.ToString();
RBL_Administrator.SelectedValue = posRow.Administrator.ToString();
RBL_CertifiedSalarySchedule.SelectedValue = posRow.clas_CertifiedScheduleInd.ToString();
RBL_OvertimeExempt.SelectedValue = posRow.position_OvertimeExemptInd.ToString();
RBL_ExtendedContractExempt.SelectedValue = posRow.position_ExtContractExemptInd.ToString();
RBL_LongevityException.SelectedValue = posRow.Longevity_Exception_Indicator.ToString();
RBL_NoStepIncrease.SelectedValue = posRow.position_NoStepInd.ToString();
RBL_JobShare.SelectedValue = posRow.position_JobShareInd.ToString();
如果需要任何其他详细信息,请与我们联系
答案 0 :(得分:0)
您需要添加您的代码,在页面加载中设置下拉列表选择值。当您在触发事件中更改下拉列表的选定值时,它不会设置所选值。 只需在页面的页面加载事件中调用您的setter方法。你的问题将得到解决。
答案 1 :(得分:0)
而不是
DDL_Occupation.SelectedValue = posRow.Position;
您需要SelectedIndex
吗?
DDL_Occupation.SelectedIndex = posRow.Position;
答案 2 :(得分:0)
需要在每个ddl之前进行数据绑定
Position1TableAdapter position1TableAdapter =
new Position1TableAdapter();
HumanResource.Position1Row posRow =
position1TableAdapter.GetData(Convert.ToInt32(Request.QueryString["PositionID"]))[0];
DDL_Assignment.DataTextField = "AssignmentName";
DDL_Assignment.DataValueField = "AssignmentName";
DDL_Assignment.DataSourceID = "DataSource_Assignment";
DDL_Occupation.DataBind();
DDL_Occupation.SelectedValue = posRow.Position;
DDL_Assignment.DataBind();
DDL_Assignment.SelectedValue = posRow.Assignment;
TB_Replaced.Text = posRow.IsReplacedNull() ? null : posRow.Replaced;
DDL_PositionDays.DataBind();
DDL_PositionDays.SelectedValue = posRow.PositionDays.ToString();
DDL_ContractDays.DataBind();
DDL_ContractDays.SelectedValue = posRow.ContractDays.ToString();
DDL_PositionHours.DataBind();
DDL_PositionHours.SelectedValue = posRow.PositionHours.ToString();