Проблема с DropDownList
На странице имеется DropDownList. По умолчанию в нём выбран первый элемент из списка. Выбираю какой-нибудь другой и нажимаю отправить. Отправляется не тот который выбран, а первый, т.е. который по умолчанию. В чём проблема?
А на код можно взглянуть?
А на код можно взглянуть?
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection thisConnection = new SqlConnection(@" Data Source=BAZA; Persist Security Info=False; User ID=asp; Server=BAZA; Initial Catalog=baza;");
thisConnection.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "mapforum2";
cmd.Connection = thisConnection;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "Table");
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
adapter.Dispose();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select name, id from forum";
SqlDataAdapter adapter2 = new SqlDataAdapter(cmd);
DataSet ds2 = new DataSet();
adapter2.Fill(ds2, "Table");
this.DropDownList1.DataSource = ds2;
this.DropDownList1.DataTextField = "name";
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataBind();
adapter2.Dispose();
ds2.Dispose();
Response.Write(DropDownList1.SelectedItem.Value);
thisConnection.Dispose();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (IsPostBack)
{
int p = Convert.ToInt32(DropDownList1.SelectedItem.Value);
SqlConnection thisConnection = new SqlConnection(@" Data Source=BAZA; Persist Security Info=False; User ID=asp; Server=BAZA; Initial Catalog=baza;");
thisConnection.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Insert into part (id_forum, name) values("+p+", '" +this.TextBox1.Text+"')";
cmd.Connection = thisConnection;
cmd.ExecuteNonQuery();
Response.Redirect("http://www.bla.bla.ru/Manage/manage_forum.aspx");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
if (IsPostBack)
{
SqlConnection thisConnection = new SqlConnection(@" Data Source=BAZA; Persist Security Info=False; User ID=asp; Server=BAZA; Initial Catalog=baza;");
thisConnection.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Insert into forum (name) values('"+ this.TextBox2.Text + "')";
cmd.Connection = thisConnection;
cmd.ExecuteNonQuery();
Response.Redirect("http://www.bla.bla.ru/Manage/manage_forum.aspx");
}
}
У тебя просто if написан так:
{...}
надо вроде так:
{...}
То есть работать будет только при условии, что это был не рефреш.
TextBox1, TextBox2 - это кто такие?
Я вышел из этой ситуации так:
protected void Page_Load(object sender, EventArgs e)
{
...
if(this.DropDownList1.Items.Count==0)
{
this.DropDownList1.DataSource = ds2;
this.DropDownList1.DataTextField = "name";
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataBind();
}
И IsPostBack не причём здесь. Надеюсь поможет.