Hola a todos:
Tengo el siguiente problema:
Estoy creando una pagina web que simula una base de datos con los
botones respectivos de Adelante y Atras.
1.- Primero recumero de Sql Server la tabla de productos y luego la
vacío en unos arrays.
static int[] IdProductos = new int[185];
static string[] Productos = new string[185];
private void GenerarProductos()
{
string GenerarProductos = "SELECT ID_PRODUC_AUTO, NOMBRE FROM
Productos ";
DataTable dt;
SqlDataAdapter da;
da = new SqlDataAdapter(GenerarProductos, miconexion);
dt = new DataTable();
da.Fill(dt);
int CantidadRegistros = Convert.ToInt16(dt.Rows.Count);
CantidadRegistros = CantidadRegistros - 1;
for (int i = 0; i <= CantidadRegistros; i++)
{
//Aqui Voy cargando el id producto en este array estatico
IdProductos[i] = Convert.ToInt16(dt.Rows[i]
["ID_PRODUC_AUTO"]);
}
for (int y = 0; y <= CantidadRegistros; y++)
{
//Aqui Voy cargando el producto en este array estatico
Productos[y] = dt.Rows[y]["NOMBRE"].ToString();
}
//una vez que se llenaron los arrays pongo los primeros
tres registros en mis textbox
this.LabelId1.Text = IdProductos[0].ToString();
this.LabelProd1.Text = Productos[0].ToString();
this.TextBoxId.Text = IdProductos[1].ToString();
this.TextBoxProd.Text = Productos[1].ToString();
this.LabelId2.Text = IdProductos[2].ToString();
this.LabelProd2.Text = Productos[2].ToString();
}
2.- En click del boton adelante está este código y funciona bien.
protected void ButtonNext_Click(object sender, EventArgs e)
{
//Recupero los valores iniciales de los textbox osea el Id de producto
int Control1 = Convert.ToInt16(this.LabelId1.Text); //1 estos
son los valores iniciales
int Control2 = Convert.ToInt16(this.TextBoxId.Text); //2
int Control3 = Convert.ToInt16(this.LabelId2.Text); //3
//Asigno a otras variables los valores de los textBox
int a1 = Control1;
int b1 = Control2;
int c1 = Control3;
this.LabelId1.Text = IdProductos[a1].ToString(); //Su index
inicial era 0 ahora es 1
this.LabelProd1.Text = Productos[a1].ToString(); //Su index
inicial era 0 ahora es 1
this.TextBoxId.Text = IdProductos[b1].ToString(); //Su index
inicial era 1 ahora es 2
this.TextBoxProd.Text = Productos[b1].ToString(); //Su index
inicial era 1 ahora es 2
this.LabelId2.Text = IdProductos[c1].ToString(); //Su index
inicial era 2 ahora es 3
this.LabelProd2.Text = Productos[c1].ToString(); //Su index
inicial era 3 ahora es 3
}
Este procedimiento que hace que el array vaya hacia delante funciona
bien
3.- Pero este que va para atras no funciona les pego el código
protected void ButtonLast_Click(object sender, EventArgs e)
{
//supongamos que ya fui hacia delante varios registros y los valores
de los text box son:
int Control1 = Convert.ToInt16(this.LabelId1.Text); //5
int Control2 = Convert.ToInt16(this.TextBoxId.Text); //6
int Control3 = Convert.ToInt16(this.LabelId2.Text); //7
//Aqui le resto un tanto al valor de los controles
int a1 = Control1 - 1;
int b1 = Control2 - 1;
int c1 = Control3 - 1;
//Si el primer textbox tiene 1 salgo del procedimiento, si no
continua
if (Control1 == 1)
{
return;
}
//Aqui esperaria que en lugar de ir hacia delante fuera hacia tras
pero no hace nada se queda con los mismos valores
this.LabelId1.Text = IdProductos[a1].ToString();
this.LabelProd1.Text = Productos[a1].ToString();
this.TextBoxId.Text = IdProductos[b1].ToString();
this.TextBoxProd.Text = Productos[b1].ToString();
this.LabelId2.Text = IdProductos[c1].ToString();
this.LabelProd2.Text = Productos[c1].ToString();
}
Por ciero es un proyecto de asp AJAX, los controles estan dentro de
un:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel><ContentTemplate>Mis Controles </asp:UpdatePanel></
ContentTemplate>
Ya llevo tiempo tratando de solucionarlo pero no puedo, talvez me
estoy complicando así que si me pueden sugerir otro metodo mas facil y
que funcione recorrer hacia delante y hacia tras les agradecería
muchisimo. Soy un programador empirico espero comprendan si es una
burrada lo que trato de hacer.
Saludos a todos.
Leer las respuestas