ASP.NET - Agregar fila gridview manual

   
Vista:

Agregar fila gridview manual

Publicado por Diego (1 intervención) el 23/08/2010 21:43:23
Hola amigos. Nose si lo que intento hacer se puede o conviene hacerlo con otros controles. El tema es asi: tengo un GridView en el cual se carga inicialmente (Load) una fila. Debajo del Grid hay un btnAgregar, que al presionarlo tiene que agregar una fila en blanco al final del mismo. El Grid mencionado cuenta con tres filas (1 Check y 2 DropDownList). Encontre codigo para esto pero no mantiene la info ya cargada/seleccionada del Grid cuando presiono el boton. Se puede hacer?

Desde ya, muchisimos gracias y espero puedan ayudarme.
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 roger

RE:Agregar fila gridview manual

Publicado por roger (311 intervenciones) el 23/08/2010 21:52:42
cual es el origen de datos del gridview, una base de datos sql o algo asi?, podrias poner algo del codigo con el que enlazas el gridview?, porque lo que es claro es que no se puede agregar manualmente una fila, sino que se debe agregar una fila al origen de datos del gridview y luego hacer el enlace.

Saludos
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

RE:Agregar fila gridview manual

Publicado por Huguin (2 intervenciones) el 23/08/2010 22:57:08
Usa el ViewState...!

private DataTable EstructuraMedidas()
{
DataTable medidaTabla = new DataTable();
medidaTabla.Columns.Add("CodigoMedida", typeof(Int32));
medidaTabla.Columns.Add("DescripcionCorreccion", typeof(string));
medidaTabla.Columns.Add("FechaProgramada", typeof(string));
return medidaTabla;
}

void FilaVacia(string tipo)
{
DataTable dt = null;
dt = EstructuraMedidas();
DataRow dr;
if (ViewState["DataTemp"] == null)
{
dr = dt.NewRow();
dr[0] = 1;
dr[1] = "";
dr[2] = "";
dt.Rows.Add(dr);
ViewState["DataTemp"] = dt;
}
else
{
int n = 1;
foreach (GridViewRow row in this.grvMedidasCorrectivas.Rows)
{
//row.DataItem
TextBox txtDescripcion = (TextBox)row.FindControl("txtDescripcion");
TextBox txtFechaProgramada = (TextBox)row.FindControl("txtFechaProgramada");
dr = dt.NewRow();
dr[0] = n;
dr[1] = txtDescripcion.Text.ToString();
dr[2] = txtFechaProgramada.Text.ToString();
dt.Rows.Add(dr);
n += 1;
}
if (tipo == "A")
{
ViewState["DataTemp"] = dt;
dr = dt.NewRow();
dr[0] = n;
dr[1] = "";
dr[2] = "";
dt.Rows.Add(dr);
}
ViewState["DataTemp"] = dt;
}
this.grvMedidasCorrectivas.DataSource = ViewState["DataTemp"];
this.grvMedidasCorrectivas.DataBind();
}

protected override void Page_Load(object sender, EventArgs e)
{

try
{
if (!Page.IsPostBack)
{
FilaVacia("A");
}
}
catch (Exception ex)
{
//Response.Redirect("Error.aspx");
}
}

protected void btnAgregar_Click(object sender, EventArgs e)
{

FilaVacia("A");
}

/*El HTML Es el siguiente */

<asp:GridView ID="grvMedidasCorrectivas" runat="server" AutoGenerateColumns="False" Width="787px"
Caption="Gestión" CssClass="grid" >
<Columns>
<asp:BoundField HeaderText="Nº" DataField="CodigoMedida">
<ItemStyle Width="5%" HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="Descripción">
<ItemTemplate>
<asp:TextBox ID="txtDescripcion" runat="server" Font-Names="Arial" Font-Size="XX-Small" Text='<%# DataBinder.Eval(Container, "DataItem.DescripcionCorreccion") %>' TextMode="MultiLine" Width="550px"></asp:TextBox>

</ItemTemplate>
<ItemStyle Width="62%" />
</asp:TemplateField>

<asp:TemplateField HeaderText="Fecha Programada" >
<ItemTemplate>
<asp:TextBox ID="txtFechaProgramada" runat="server" CssClass="textbox" Width="80px" ReadOnly="true" Text='<%# DataBinder.Eval(Container, "DataItem.FechaProgramada") %>'></asp:TextBox>

</ItemTemplate>
<ItemStyle Width="25%" />
</asp:TemplateField>
</Columns>
</asp:GridView>


Saludos...!
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

RE:Agregar fila gridview manual

Publicado por KING del .NET (1 intervención) el 30/01/2013 15:07:40
hola, solo y simplemente es aumentar un template fied y jalar la herramienta que quieras, en este caso un dropDowList. Mas fasil no puede ser.!
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

RE:Agregar fila gridview manual

Publicado por abc (1 intervención) el 09/07/2015 19:04:47


1
 
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