2012-09-08 61 views
0

这是mi的第一篇文章。 我正在使用Visual Studio制作Azure应用程序。实时DropdownList SelectedValue

我想做一个“更新页面”。

这是我想要实现解步骤:

1)用户从将DropDownList

2中选择一个ID)一样,用户按下一个HTML按钮

3) “系统”填补一些TextBoxs蒙山从SQL语句的信息: 选择...其中Id = DropDownList1.SelectedValue.ToString()

4)用户可以更改的TextBoxs一些信息,并推动一个ASP按钮

5)系统做一个SQL UPDATE句子蒙山的TextBoxs

从来就得到一个DropDownList的的信息,IDPRODUCT

<asp:DropDownList ID="DropDownList1" OnSelectedIndexChanged="index_Changed" runat="server" ></asp:DropDownList> 

我填它从一个SQL语句中的“页面装载”

DropDownList1.Items.Clear(); 
      DropDownList1.Items.Add(" "); 

      string consultaComboIdCompra = "SELECT DISTINCT IdCompra FROM Compras"; 
      SqlCommand sqlCommandComboIdCompra = new SqlCommand(consultaComboIdCompra, sqlConnection); 
      sqlConnection.Open(); 
      SqlDataReader readerComboIdCompra = sqlCommandComboIdCompra.ExecuteReader(); 


      if (readerComboIdCompra.HasRows) 
      { 
       while (readerComboIdCompra.Read()) 
       { 
        DropDownList1.Items.Add(readerComboIdCompra.GetString(0)); 
       } 
      } 

      sqlConnection.Close(); 

从来就一个HTML按钮,it's功能应该填补一些特xtBox用SQL语句的结果,如:

string consulta2 = "SELECT Unidades FROM Productos WHERE IdProducto = '" + DropDownList1.SelectedValue.ToString() + "'"; 
SqlCommand sqlCommand2 = new SqlCommand(consulta2, sqlConnection); 
sqlConnection.Open(); 
SqlDataReader reader2 = sqlCommand2.ExecuteReader(); 

if (reader2.HasRows) 
{ 
    while (reader2.Read()) 
    { 

     TextBox4.Text = reader2.GetString(0); 
    } 
} 
sqlConnection.Close(); 

去年从来就实施的UPDATE句子

if (IsPostBack) 
      { 
string idCompra = DropDownList1.SelectedValue.ToString(); 

string consulta3 = "UPDATE Compras SET Unidades = '" + TextBox1.Text + "' WHERE IdCompra = '" + idCompra + "'"; 
       SqlCommand sqlCommand3 = new SqlCommand(consulta3, sqlConnection); 
       sqlConnection.Open(); 
       SqlDataReader reader3 = sqlCommand3.ExecuteReader(); 
       sqlConnection.Close(); 

} 

我不能“自动应答”,所以编辑我问 的代码,最后作品,感谢nunespascal,是下一个:

public partial class WebFormProductosOpcion5 : System.Web.UI.Page 
     { 
      static string strSQLconnection = ********* 
      static SqlConnection sqlConnection = new SqlConnection(strSQLconnection); 
      protected void Page_Load(object sender, EventArgs e) 
      { 
       if(!IsPostBack) 
       { 
       DropDownList1.Items.Clear(); 
       DropDownList1.Items.Add(" "); 

       string consultaComboIdProducto = "SELECT DISTINCT IdProducto FROM Productos"; 
       SqlCommand sqlCommandComboIdProducto = new SqlCommand(consultaComboIdProducto, sqlConnection); 
       sqlConnection.Open(); 
       SqlDataReader readerComboIdProducto = sqlCommandComboIdProducto.ExecuteReader(); 


       if (readerComboIdProducto.HasRows) 
       { 
        while (readerComboIdProducto.Read()) 
        { 
         DropDownList1.Items.Add(readerComboIdProducto.GetString(0)); 
        } 
       } 

       sqlConnection.Close(); 



      } 

      } 

      protected void html_click(object sender, EventArgs e) 
      { 
       TextBox2.Text = "HOLA"; 
       Debug.WriteLine("HOLA"); 



      } 



      protected void HTML_Button_Click(object sender, EventArgs e) 
      { 
       string idProductoSeleccionado = DropDownList1.SelectedValue.ToString(); 
       string consultaUltimo = "SELECT * FROM Productos WHERE IdProducto = '" + idProductoSeleccionado + "'"; 
       SqlCommand sqlCommandUltimo = new SqlCommand(consultaUltimo, sqlConnection); 
       sqlConnection.Open(); 
       SqlDataReader readerUltimo = sqlCommandUltimo.ExecuteReader(); 

       if (readerUltimo.HasRows) 
       { 
        while (readerUltimo.Read()) 
        { 
         //Put the name 
         TextBox2.Text = readerUltimo.GetString(1); 
        } 
       } 

       sqlConnection.Close(); 
       //Label10.Text = col1; 
       sqlConnection.Close(); 
      } 



      protected void Button1_Click(object sender, EventArgs e) 
      { 

        //string consulta = "select * from Productos where IdProducto ='"; 
        //consulta = consulta + idP + "'"; 
        SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection); 
        sqlConnection.Open(); 
        SqlDataReader reader = sqlCommand.ExecuteReader(); 
        sqlConnection.Close(); 
        //Mensaje Modificación Correcta 
        Response.Write("<script language=javascript>alert('Modificado con éxito');</script>"); 




      } 
     } 
+1

究竟什么是不工作?您可以将此分解为更小的问题,确切地说,您面临的问题是什么 – nunespascal

回答

0

你需要一个DropDownList仅在第一次用户请求的页面进行绑定。 检查用户是不是因为你是一个按钮更新上页Load

if(!IsPostBack) 
{ 
     DropDownList1.Items.Clear(); 
     DropDownList1.Items.Add(" "); 

     string consultaComboIdCompra = "SELECT DISTINCT IdCompra FROM Compras"; 
     SqlCommand sqlCommandComboIdCompra = new SqlCommand(consultaComboIdCompra, sqlConnection); 
     sqlConnection.Open(); 
     SqlDataReader readerComboIdCompra = sqlCommandComboIdCompra.ExecuteReader(); 


     if (readerComboIdCompra.HasRows) 
     { 
      while (readerComboIdCompra.Read()) 
      { 
       DropDownList1.Items.Add(readerComboIdCompra.GetString(0)); 
      } 
     } 

     sqlConnection.Close(); 
} 

结合之前发布回来,你不用检查IsPostBack。将该代码放在事件处理程序的按钮Click上。这样,只有当有人点击你的更新按钮时才会运行。

+0

非常感谢!但我的问题是,当用户推HTML按钮DropDownList1.SelectedValue.ToString()的值是“”(因为我添加它DropDownList1.Items.Add(“”);) – vlopezla

+0

这是因为你重新绑定值。看看我的回复。第一行在你的代码中缺少'if(!IsPostBack)' – nunespascal

+0

ok,明白!非常感谢!! – vlopezla

相关问题