asp.net下拉列表和数据库奇怪的问题

时间:2018-03-21 09:42:38

标签: c# sql asp.net webforms

我有2个下拉列表和2个问题。第一个应该加载employeeID,并显示如下所示:

DataSet ds = new DataSet();
SqlDataAdapter daEmploy = new SqlDataAdapter(EmployCmd);
conn.Open();

daEmploy.Fill(ds, "EmployerID");

ddlCompanyList.DataSource = ds.Tables[0];
ddlCompanyList.Items.Clear();
ddlCompanyList.Items.Add("--Please Select the Company--");
ddlCompanyList.DataTextField = "EmployerID";
ddlCompanyList.DataValueField = "EmployerID";
ddlCompanyList.DataBind();

conn.Close();

除了因为某些原因我无法将“请选择公司”添加到下拉列表中这一事实之外,这样做很好。

奇怪的问题是,当我选择其中一个条目时,它只是刷新页面,除了使第二个下拉列表可见并从两个列表中删除所有数据之外不做任何其他操作。

第二个问题是当我尝试同时选择EmployerID及其名称时,将它们组合成一个列以便在下拉列表中使用,而不仅仅是单独的EmployerID

SqlCommand Cmd = new SQLCommand(“SELECT EmployerID +' - '+ Name AS CompanyName From Employer”,conn);

我不知道如何使用此dropdownlist.selectedvalue来调出相应的员工,因为我不知道如何将列拆分回原来的两列。

谢谢〜

1 个答案:

答案 0 :(得分:2)

  

我无法添加"请选择公司"进入一些下拉列表   原因。

您必须确保p { margin-top: 0; margin-bottom: 0; } 设置为AppendDataBoundItems

true
  

奇怪的问题是,当我选择其中一个条目时,它就是   刷新页面除了制作第二个之外别无其他   下拉列表可见,并从两个列表中删除所有数据。

我猜这个的原因是经典错误,你总是将DropDownList数据绑定,而不仅仅是<asp:DropDownList ID="ddlCompanyList" runat="server" AppendDataBoundItems="true"> <asp:ListItem Text="--Please Select the Company--" Value="" /> </asp:DropDownList> 。所以在if(!IsPostBack)

中使用它
Page_Load
  

第二个问题是当我尝试同时选择EmployerID和他们的   将它们组合成一个列并在其中使用   dropdownlist而不仅仅是像这样的EmployerID

您只使用if(!IsPostBack) { MethodWhichDataBindsYourDropDownList(); } ,为EmployerIdDataTextField使用不同的值

DataValueField

然后使用此查询:

ddlCompanyList.DataTextField = "EmployerID";
ddlCompanyList.DataValueField = "EmployerName";