【问题标题】:How to store values in drop down list after button click in asp.net?如何在asp.net中单击按钮后将值存储在下拉列表中?
【发布时间】:2017-10-08 15:59:52
【问题描述】:

我创建了 2 个 DropDownLists 第一个下拉列表包含“TeamName”,第二个包含“TeamMember”名称。要求是当我们从下拉列表中选择特定的团队名称时,第二个下拉列表应自动填充团队成员名称,并且在按钮单击数据后应将数据插入数据库中,第一次按钮单击工作正常,但第二次在同一页面上“团队名称”下拉列表不显示部门名称,突然丢失。所以请告诉我我需要做什么来解决这个问题??

以下是我为完成此任务所做的代码

User.aspx page code:

User.aspx.cs 页面代码:

 protected void Page_Load(object sender, EventArgs e)
 {
    if (!IsPostBack)
    {
        BindTeamName();
        txtCurrentDate.Text = DateTime.Now.ToString("MM-dd-yyyy");
        txtCurrentDate.ForeColor = System.Drawing.Color.Green;
    }
}
private void BindTeamName()
{
    SqlConnection con = new SqlConnection(SqlString);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from TeamName", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    con.Close();
    ddl1.DataSource = ds;
    ddl1.DataTextField = "TeamName";
    ddl1.DataValueField = "TeamId";
    ddl1.DataBind();
    ddl1.Items.Insert(0, new ListItem("--Select--", "0"));
}
protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
    int TeamId = Convert.ToInt32(ddl1.SelectedValue);
    SqlConnection con = new SqlConnection(SqlString);
    con.Open();
    SqlCommand cmd = new SqlCommand("select * from TeamResource where TeamId=" + TeamId, con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    con.Close();
    ddl2.DataSource = ds;
    ddl2.DataTextField = "EmpName";
    ddl2.DataValueField = "EmpId";
    ddl2.DataBind();
    ddl2.Items.Insert(0, new ListItem("--Select--", "0"));     
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        using (SqlConnection con = new SqlConnection(SqlString))
        {

            SqlCommand cmd = new SqlCommand("InsertUserData", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@WorkDate", txtCurrentDate.Text);
            cmd.Parameters.AddWithValue("@TeamName", ddl1.SelectedItem.Text);
            cmd.Parameters.AddWithValue("@TeamMember", ddl2.SelectedItem.Text);
            cmd.Parameters.AddWithValue("@AvailableBandwidth", ddlAvailable.SelectedItem.Value);
            con.Open();
            int ReturnCode = (int)cmd.ExecuteScalar();
            if (ReturnCode == -1)
            {
                lblMsg.Text = "Already Data present";
                lblMsg.ForeColor = System.Drawing.Color.Red;
                ClearFields();
            }
            else
            {
                lblMsg.Text = "Data inserted successfully";
                lblMsg.ForeColor = System.Drawing.Color.Green;
                ClearFields();

            }

        }

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    我会在成功保存后重新绑定“TeamName”下拉列表。

    //btnSubmit_Click
    if (ReturnCode == -1)
    {
          lblMsg.Text = "Already Data present";
          lblMsg.ForeColor = System.Drawing.Color.Red;
          ClearFields();
    }
    else
    {
          lblMsg.Text = "Data inserted successfully";
          lblMsg.ForeColor = System.Drawing.Color.Green;
          ClearFields();
          BindTeamName(); //re-bind the initial dropdown so you can select a new team
     }
    

    实际上你可以使用任何一种方法,这取决于ClearFields() 的作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      相关资源
      最近更新 更多