Hola Grupo.
Tengo un problema cuando intento insertar un nuevo registro a un
datagrid pongo el codigo espero me puedan ayudar.
private void grdDetalle_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName=="AddNewRow")
{
string strAnoOtNew;
TextBox txtAnoOtNew;
txtAnoOtNew (TextBox)(e.Item.Cells[0].FindControl("txtAnoOtNew"));
strAnoOtNew = txtAnoOtNew.Text;
//crea un nuevo registro
DataRow drDetalle;
drDetalle = dtDetalle.NewRow();
drDetalle["anoot"]= strAnoOtNew; //aqui me da error me dice que la
columna anoot no existe en la tabla
dtDetalle.Rows.Add(drDetalle);
BindGrid();
}
}
private void BindGrid()
{
grdDetalle.DataSource = dtDetalle;
grdDetalle.DataBind();
}
Este es como creo mi datagrid
asp:datagrid id="grdDetalle" runat="server" AutoGenerateColumns="False"
ShowFooter="True">
<AlternatingItemStyle
CssClass="GridAltItem"></AlternatingItemStyle>
<ItemStyle CssClass="GridItem"></ItemStyle>
<HeaderStyle CssClass="GridHeader"></HeaderStyle>
<FooterStyle CssClass="GridFooter"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="Año OT">
<ItemTemplate>
<asp:Label id=lblAnoOtItem runat="server" Width="50px"
Text='<%# DataBinder.Eval(Container, "DataItem.anoot") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAnoOtNew" runat="server"
CssClass="CajaTextoEdicion" Width="50px"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox id="txtAnoOtEdit" runat="server"
CssClass="CajaTextoEdicion" Width="50px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Cod OT">
<ItemTemplate>
<asp:Label id=lblCodOtItem runat="server" Width="50px"
Text='<%# DataBinder.Eval(Container, "DataItem.codot") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtCodOtNew" runat="server" Width="50px"
CssClass="CajaTextoEdicion"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox id="txtCodOtEdit" runat="server"
Width="50px" CssClass="CajaTextoEdicion"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Cod. Articulo">
<ItemTemplate>
<asp:Label id=lblCodArtItem runat="server" Width="75px"
Text='<%# DataBinder.Eval(Container, "DataItem.carticulo") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtCodArtNew" Width="75px"
CssClass="CajaTextoEdicion" Runat="server"></asp:TextBox><INPUT
class="Boton" id="btnBusCodArt" type="button" value="...">
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox id="txtCodArtEdit" Width="75px"
CssClass="CajaTextoEdicion" Runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Descripcion Articulo">
<ItemTemplate>
<asp:Label id=lblDesArtItem runat="server" Width="100px"
Text='<%# DataBinder.Eval(Container, "DataItem.darticulo") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtDesArtNew" runat="server"
Width="100px" CssClass="CajaTextoEdicion"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox id="txtDesArtEdit" runat="server"
Width="100px" CssClass="CajaTextoEdicion"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="lnkEditar" runat="server" Text="<img
border=0 src=../Img/Editar.gif alt=editar>"
CommandName="Edit" CausesValidation="False">
<img border="0" src="../Img/Editar.gif"
alt="editar"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton id="lnkActualizar" runat="server"
Text="<img border=0 src=../Img/Actualizar.gif alt=Guardar/Actualizar>"
CommandName="Update">
<img border="0" src="../img/Actualizar.gif"
alt="Guardar/Actualizar" width="16" height="16"></asp:LinkButton>
<asp:LinkButton id="lnkCancelar" runat="server"
Text="<img border=0 src=../Img/Cancel.gif alt=Cancelar>"
CommandName="Cancel" CausesValidation="False">
<img border="0" src="../Img/Cancelar.gif"
alt="Cancelar"></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="lnkEliminar" runat="server"
Text="<img border=0 src=../Img/Eliminar.gif alt=Eliminar>"
CommandName="Delete" CausesValidation="False">
<img border="0" src="../Img/Eliminar.gif" alt="Eliminar"
width="16" height="16"></asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton id="lnkAgregar" runat="server"
CommandName="AddNewRow">
<img border="0" src="../img/Guardar.gif" alt="Agregar"
width="16" height="16"></asp:LinkButton>
</FooterTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
Leer las respuestas