Visual C++ .NET - obtenet calor de grid

 
Vista:
sin imagen de perfil

obtenet calor de grid

Publicado por alexis (1 intervención) el 09/12/2014 22:29:01
buenas tardes que tal, tengo un problema para obtener el valor de las filas de un grid

el campo esta creado de la siguiente forma

1
2
3
4
5
6
7
8
9
10
<asp:templatefield  HeaderText="PO" >
	<headertemplate>
		<asp:DropDownList ID="ddlPos" runat="server" AutoPostBack="True"  Height ="18px"
			onselectedindexchanged="ddlPos_SelectedIndexChanged" Font-Size="9pt">
		</asp:DropDownList>
	</headertemplate>
	<itemtemplate>
		<asp:Label ID="lblPO" runat="server" Text='<%# Bind("no_po")%>'></asp:Label>
	</itemtemplate>
</asp:templatefield>


en codigo lo estoy intentando obtener recorriendo el grid y obteniendo el valor de la celda pero me manda error dice que esta null o en blanco

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
{
	adLogTRX LogTRX = new adLogTRX();
	adLogTrxRef LogRef = new adLogTrxRef();
	string errorInfo = "";
	long lResult = 0;
 
 
	ImageButton imBtn = (ImageButton)sender;
	LogTRX.TrxRefCollection = new adLogTrxRefCollection();
	LogTRX.iOpt = 0;
 
 
	//Se utiliza para eliminar todos los colores
	foreach (GridViewRow row in grvTrxs.Rows)
	{
		LogRef.iOpt = 0;
 
		LogRef.style_color_code = row.Cells[8].Text.ToString();
 
 
		LogRef.no_po  = row.Cells[3].Text.ToString();
 
 
		LogTRX.TrxRefCollection.Add(LogRef);
 
 
		//Elimina el color
		lResult = lnLogicData.rmvPoFromBL(LogTRX, ref errorInfo);
 
 
		if (errorInfo != "")
		{
			lblError.Visible = true;
			lblError.Text = errorInfo;
		}
 
	}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener valor seleccionado de DropDownList en GridView con Visual C#

Publicado por Alejandro (265 intervenciones) el 13/02/2024 23:21:28
Alexis, en ASP.NET, al utilizar un `TemplateField` con un `DropDownList` dentro de un `GridView`, el valor del campo `no_po` no se encuentra directamente en la celda del `GridView`. En cambio, el valor está contenido en el `DropDownList` que se encuentra en el `HeaderTemplate`.

Puedes acceder al `DropDownList` en el evento del botón y obtener el valor seleccionado. Aquí tienes una sugerencia de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
protected void btnEliminar_Click(object sender, ImageClickEventArgs e)
{
    adLogTRX LogTRX = new adLogTRX();
    adLogTrxRef LogRef = new adLogTrxRef();
    string errorInfo = "";
    long lResult = 0;
 
    ImageButton imBtn = (ImageButton)sender;
    LogTRX.TrxRefCollection = new adLogTrxRefCollection();
    LogTRX.iOpt = 0;
 
    foreach (GridViewRow row in grvTrxs.Rows)
    {
        LogRef.iOpt = 0;
 
        // Accede al DropDownList en el HeaderTemplate
        DropDownList ddlPos = (DropDownList)row.FindControl("ddlPos");
        if (ddlPos != null)
        {
            // Obtén el valor seleccionado del DropDownList
            LogRef.no_po = ddlPos.SelectedValue;
        }
 
        LogTRX.TrxRefCollection.Add(LogRef);
 
        // Elimina el color
        lResult = lnLogicData.rmvPoFromBL(LogTRX, ref errorInfo);
 
        if (errorInfo != "")
        {
            lblError.Visible = true;
            lblError.Text = errorInfo;
        }
    }
}

En este código, se busca el `DropDownList` con `FindControl` y luego se obtiene el valor seleccionado de ese `DropDownList`. Asegúrate de que el `DropDownList` en el `HeaderTemplate` tenga un valor seleccionado antes de utilizarlo para evitar errores de referencia nula.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar