【发布时间】:2016-01-20 14:22:27
【问题描述】:
这里发生的事情是,每当我从dropdownlist 中选择一个值时,页面就会得到回发,然后它又回到了“--- Select ---”强>。
我尝试了链接here,但没有成功
if (DtMainA.Rows.Count > 0)
{
DataTable DtGoodType = new DataTable();
ObjPriDaAdp = new OracleDataAdapter("select mkey, vehicle_no from XXCUS.XXGID_AUDIT_ENTRY where mkey= '" + Hid_MKey.Value + "'", ObjPriCon);
ObjPriDaAdp.Fill(DtGoodType);
if (DtGoodType.Rows.Count > 0)
{
cmdVehicleNo.DataTextField = "vehicle_no";
cmdVehicleNo.DataValueField = "mkey";
cmdVehicleNo.DataSource = DtGoodType;
cmdVehicleNo.DataBind();
cmdVehicleNo.Items.Insert(0, new ListItem("--- Select ---", "0"));
}
}
另见我的 aspx:-
<asp:DropDownList ID="cmdVehicleNo" runat="server" Style="width: 50%" AutoPostBack="true"
OnSelectedIndexChanged="cmdVehicleNo_SelectedIndexChanged">
<asp:ListItem Value="0" Selected="True" >--- Select ---</asp:ListItem>
</asp:DropDownList>
更新
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (ObjPriCon.State == System.Data.ConnectionState.Closed)
{
ObjPriCon.Open();
}
if (hidAttachid.Value == "")
{
hidAttachid.Value = "0";
}
ObjPriCmd = new OracleCommand("Select count(MKEY)cntrow from XXCUS.XXGID_AUDIT_ENTRY", ObjPriCon);
FunFillData();
ObjPriCon.Close();
fillProject();
fillGoodType();
}
}
protected void CmbProject_SelectedIndexChanged(object sender, EventArgs e)
{
// ClientScript.RegisterStartupScript(this.GetType(), "SuccessScript", "window.location.href='FrmCentral_Monitoring_Entry_OUT.aspx?userid=" + Hid_userid.Value + "';", true);
if (CmbProject.SelectedIndex > 0)
{
DtCombo = FillComboBox("select mkey, vehicle_no from XXCUS.XXGID_AUDIT_ENTRY where time_out IS NULL and Project_id='" + CmbProject.SelectedValue + "'");
cmdVehicleNo.DataTextField = "vehicle_no";
cmdVehicleNo.DataValueField = "mkey";
cmdVehicleNo.DataSource = DtCombo;
cmdVehicleNo.DataBind();
cmdVehicleNo.Items.Insert(0, new ListItem("--- Select ---", "0"));
if (DtCombo.Rows.Count == 1)
{
cmdVehicleNo.SelectedIndex = 1;
}
DtCombo.Clear();
}
Funclear();
}
【问题讨论】:
-
您的 aspx 将 --- Select -- 显式设置为通过
Selected="True"选择 -
@Übercoder:从 aspx 中删除 true 后。它仍然无法按预期工作
-
可能你的问题是
postback。还要检查这个问题:stackoverflow.com/questions/34544500/… -
@user2946329:是的,我的问题是回发,它将值重置为默认值。在您提供的链接中,我很困惑我在做什么?我需要在页面加载中再次调用整个数据表吗
-
强烈怀疑您在 Page_Load 上缺少
!IsPostBack条件。所以它每次都重新绑定下拉菜单。
标签: c# asp.net drop-down-menu