0

对于 Dropdownlist 项目,我编写了以下代码:

 protected void dropdowndatasrc()
{
    con = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
    string command = "select eventname from Events";
    cmd = new OleDbCommand(command);
    dataadapter = new OleDbDataAdapter(command, con);
    DataSet dataset = new DataSet();
    con.Open();
    DataTable dt = new DataTable("PayEvent");
    dataadapter.Fill(dt);
    DropDownList4.DataSource = dt;
    DropDownList4.DataTextField = dt.Columns[0].ToString();
  //  DropDownList4.DataValueField = dt.Columns[0].ToString();
   DropDownList4.DataBind();
}

我必须根据下拉列表的值显示控件(在访问数据库中有一个名为 payevent 的列,如果数据库中的选定项目具有“是”,则它具有是/否数据类型意味着显示控件,如果不是没有控件必须显示)

我试过这段代码但没有用

protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
{

    TextBox11.Text = DropDownList4.SelectedItem.Text;
    con = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
    string query = "select payevent from Events where  eventname=@dropdownlist";
    con.Open();
    //string query="select payevent from Events";
    cmd = new OleDbCommand(query, con);
    cmd.Parameters.Add("@dropdownlist", selectedtext);
    OleDbDataReader reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        string value = reader.GetValue((0)).ToString();
        TextBox11.Text = value.ToString();
        if (value == "True" || value == "true")
        { pnl.Visible = false; }
        else if (value == "False" || value == "false")
        { pnl.Visible = true; }



    }
}

表结构如下:

**eventname             payevent**
Work Shop       Yes
emsisoft workshop   Yes
ECE             No
CSE             No

需要帮忙 !!!

4

1 回答 1

0

通常的问题是您在回发后再次在下拉列表上进行数据绑定并且值丢失。因此,在页面加载时,不要将dropdowndatasrcon post 调用为:

if(!IsPostBack)
  dropdowndatasrc();

同样的问题:下拉列表没有选择值 asp.net

于 2012-10-11T19:07:13.067 回答