Principales respuestas
agarrar el nombre y otros componentes de acuerdo al checkbox seleccionado asp.net C#

Pregunta
-
Estoy haciendo un proyecto, donde tengo una bitacora que muestra varios registros, y cada row tiene un chechbox, si yo selecciono varios con el mismo nombre, se suma 2 columnas, el del peso y cantidad, y se ponen el resultado en 2 texboxt, por ejemlo, cantidad.text y peso.text. PERO NECESITO RECUPERAR EL NOMBRE Y PONERLO EN NAME.TEXT pero solo he podido hcer la suma. no se como poner para que agarre solo el nombre y una sola vez
//SOLO SUMA, CANTIDAD Y PESO
protected void seleccionar(object sender, EventArgs e)
{
int suma = GridView1.Rows.Cast<GridViewRow>()
.Where(x => Convert.ToBoolean(((CheckBox)x.FindControl("chbItem")).Checked) )
.Sum(x => Convert.ToInt32(x.Cells[4].Text));
int suma2 = GridView1.Rows.Cast<GridViewRow>()
.Where(y => Convert.ToBoolean(((CheckBox)y.FindControl("chbItem")).Checked))
.Sum(y => Convert.ToInt32(y.Cells[18].Text));
PesoTotal.Text = suma.ToString();
cantidadTotal.Text = suma2.ToString();
}
Respuestas
-
hola
a veces puede ayudar la notacion linq
var result = from row in GridView1.Rows.Cast<GridViewRow>() where ((CheckBox)row.FindControl("chbItem")).Checked select new { precio = Convert.ToInt32(row.Cells[4].Text), cantidad = Convert.ToInt32(row.Cells[18].Text) }; PesoTotal.Text = result.Sum(x=>x.precio).ToString(); cantidadTotal.Text = result.Sum(x=>x.cantidad).ToString();
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP miércoles, 11 de septiembre de 2019 17:00
- Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 21:02
- Marcado como respuesta danielglez viernes, 13 de septiembre de 2019 14:50
Todas las respuestas
-
El truco es simplemente cambiar los operadores LINQ.
Ten presente que si seleccionas distintas filas que no tengan el mismo nombre, se devolvera el primero de los nombres. Y si no seleccionas ninguna fila, se devolvera null.
string nombre = GridView1.Rows.Cast<GridViewRow>()
.FirstOrDefault(y => Convert.ToBoolean(((CheckBox)y.FindControl("chbItem")).Checked))
?.Select(y => y.Cells[numero].Text);
- Editado Alberto PoblacionMVP miércoles, 11 de septiembre de 2019 15:07
- Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 21:02
- Votado como útil Pablo RubioModerator miércoles, 11 de septiembre de 2019 21:02
-
-
hola
a veces puede ayudar la notacion linq
var result = from row in GridView1.Rows.Cast<GridViewRow>() where ((CheckBox)row.FindControl("chbItem")).Checked select new { precio = Convert.ToInt32(row.Cells[4].Text), cantidad = Convert.ToInt32(row.Cells[18].Text) }; PesoTotal.Text = result.Sum(x=>x.precio).ToString(); cantidadTotal.Text = result.Sum(x=>x.cantidad).ToString();
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP miércoles, 11 de septiembre de 2019 17:00
- Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 21:02
- Marcado como respuesta danielglez viernes, 13 de septiembre de 2019 14:50
-
-
ya edite la respuesta, cambia la x y por row
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 21:02