0

我有一个下拉列表,我使用代码隐藏从我的数据库中获取了值。

从源读取数据后,我添加了一个新值,称为“..添加新技能”。

现在,当用户单击该项目时,我需要打开一个小页面(或者更确切地说是一个新页面)以添加 DropDownList 中未提及的技能。

if (!IsPostBack)
{
    SqlConnection myConn = new SqlConnection(@"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=KKSTech;Integrated Security=True");
    SqlCommand myCmd = new SqlCommand(
        "SELECT SkillName, SkillID FROM Skills", myConn);
    myConn.Open();
    SqlDataReader myReader = myCmd.ExecuteReader();

    //Set up the data binding.
    DropDownList1.DataSource = myReader;
    DropDownList1.DataTextField = "SKillName";
    DropDownList1.DataValueField = "SkillID";
    DropDownList1.DataBind();

    //Close the connection.
    myConn.Close();
    myReader.Close();

    //Add the item at the first position.
    DropDownList1.Items.Insert(0, "..Add New Skill");
}

这是我的代码隐藏文件。我现在如何链接它?

4

4 回答 4

1

像这样添加一个SelectedIndexChanged事件处理程序dropdown

void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(ddl.SelectedIndex == 0)
        Response.Redirect("Add_New_Skill.aspx");
    }

如果您希望“...添加新技能”的位置位于列表的最后

用这个

ddl.Items.Insert(ddl.Items.Count, "...Add New Skill");

现在要重定向到另一个页面,您应该这样做

void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    if(ddl.SelectedIndex == ddl.Items.Count-1)
       Response.Redirect("Add_New_Skill.aspx");
}
于 2012-07-27T07:25:26.740 回答
1

您应该使用 SelectedIndexChanged 事件和 SelectedValue 属性:

   void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
       if(String.Compare(ddl.SelectedValue,"..Add New Skill",true)==0)
       Response.Redirect("Add_New_Skill.aspx");
    }
于 2012-07-27T07:36:03.697 回答
0

设置AutoPostBack为真。这样,当用户更改选项时,它会自动将页面发布到服务器。

处理这个 SelectedIndexChanged 事件,并在那里重定向到您的添加页面。

  • 将您的用户带到添加页面。
  • 将详细信息添加到数据库。
  • 将用户带回此页面。
  • 列表将从数据库中重新加载,直到获得您的价值。

不需要特殊链接。

于 2012-07-27T07:25:02.780 回答
0

这是有效的

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindDropdownlist()
        }
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string getvalue = DropDownList1.SelectedItem.Value;
        if (getvalue == "..Add New Skill")
        {
            Response.Redirect("Default.apsx");
        }
    }

  public void bindDropdownlist()
    {
        SqlDataAdapter dap = new SqlDataAdapter("select coloumn1,colum2 from table", con);
        DataSet ds = new DataSet();
        dap.Fill(ds);
        DropDownList1.DataSource = ds.Tables[0];
        DropDownList1.DataTextField = "coloumn1";
        DropDownList1.DataValueField = "colum2 ";
        DropDownList1.DataBind();
        DropDownList1.Items.Insert(0, "..Add New Skill");
    }
}

<div>
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            onselectedindexchanged="DropDownList1_SelectedIndexChanged">
    </asp:DropDownList>
    </div>
于 2012-07-27T08:05:01.870 回答