Obtener valor text de textbox que esta dentro de gridview2 y este esta dentro de otro grid
Publicado por jonytry (1 intervención) el 24/11/2011 17:53:15
Que tal amigos quisiera que me ayudaran a resolver un problema que tengo con unos gridview. Bueno lo que quiero hacer es obtener el valor de un textbox que esta dentro de un gridview y este gridview esta dentro de otro gridview algo como lo siguiente
gridviewpadre(gridviewhijo(textbox))
el textbox es para meter el precio de los productos, no se como obtener el valor del textbox para guardarlo en la base de datos solo he podido obtener el valor del textbox cuando solo esta dentro de un gridview pero cuando ese gridview esta dentro de otro gridview me marca error dice:
Referencia a objeto no establecida como instancia de un objeto.
por lo que yo creo que no esta obteniendo o encontrando el control para el enlaze de datos utilizo un sqldatasource, estoy utilizando el siguiente codigo para poder obtener su valor del textbox
GridView grid5 = new GridView();
TextBox textbox1 = new TextBox();
foreach (GridViewRow filagrid4 in GridView4.Rows)
{
grid5 = (GridView)(filagrid4.Cells[0].FindControl("GridView5"));
foreach (GridViewRow filagrid5 in ((GridView)grid5.FindControl("GridView5")).Rows)
{
textbox1=(TextBox)(filagrid5.Cells[3].FindControl("TextBox1"));
string valor = ((TextBox)textbox1.FindControl("TextBox1")).Text ;
}
}
el gridview hijo solo se encuentra en la celda 0 por que solo tengo un columna, el texbox lo meto en un templated del gridview hijo el codigo del los grid y el texbox es el siguiente
<asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDataSource3" ForeColor="#333333"
GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:TemplateField HeaderText="Area">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("NomArea") %>'></asp:Label>
<asp:GridView ID="GridView5" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="IDProducto" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="IDProducto" HeaderText="IDProducto"
InsertVisible="False" ReadOnly="True" SortExpression="IDProducto" />
<asp:BoundField DataField="NombreProducto" HeaderText="NombreProducto"
SortExpression="NombreProducto" />
<asp:BoundField DataField="IDCategoria" HeaderText="IDCategoria"
SortExpression="IDCategoria" />
<asp:BoundField DataField="IDProveedor" HeaderText="IDProveedor"
SortExpression="IDProveedor" />
<asp:TemplateField HeaderText="Precio">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=local;Initial Catalog=Ventas;Integrated Security=True"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [IDProducto], [NombreProducto], [IDCategoria], [IDProveedor] FROM [Alphabetical list of productos]">
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
espero que me puedan ayudar gracias cualquier comentario es bienvenido gracias otra vez
gridviewpadre(gridviewhijo(textbox))
el textbox es para meter el precio de los productos, no se como obtener el valor del textbox para guardarlo en la base de datos solo he podido obtener el valor del textbox cuando solo esta dentro de un gridview pero cuando ese gridview esta dentro de otro gridview me marca error dice:
Referencia a objeto no establecida como instancia de un objeto.
por lo que yo creo que no esta obteniendo o encontrando el control para el enlaze de datos utilizo un sqldatasource, estoy utilizando el siguiente codigo para poder obtener su valor del textbox
GridView grid5 = new GridView();
TextBox textbox1 = new TextBox();
foreach (GridViewRow filagrid4 in GridView4.Rows)
{
grid5 = (GridView)(filagrid4.Cells[0].FindControl("GridView5"));
foreach (GridViewRow filagrid5 in ((GridView)grid5.FindControl("GridView5")).Rows)
{
textbox1=(TextBox)(filagrid5.Cells[3].FindControl("TextBox1"));
string valor = ((TextBox)textbox1.FindControl("TextBox1")).Text ;
}
}
el gridview hijo solo se encuentra en la celda 0 por que solo tengo un columna, el texbox lo meto en un templated del gridview hijo el codigo del los grid y el texbox es el siguiente
<asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDataSource3" ForeColor="#333333"
GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:TemplateField HeaderText="Area">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("NomArea") %>'></asp:Label>
<asp:GridView ID="GridView5" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="IDProducto" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="IDProducto" HeaderText="IDProducto"
InsertVisible="False" ReadOnly="True" SortExpression="IDProducto" />
<asp:BoundField DataField="NombreProducto" HeaderText="NombreProducto"
SortExpression="NombreProducto" />
<asp:BoundField DataField="IDCategoria" HeaderText="IDCategoria"
SortExpression="IDCategoria" />
<asp:BoundField DataField="IDProveedor" HeaderText="IDProveedor"
SortExpression="IDProveedor" />
<asp:TemplateField HeaderText="Precio">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=local;Initial Catalog=Ventas;Integrated Security=True"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [IDProducto], [NombreProducto], [IDCategoria], [IDProveedor] FROM [Alphabetical list of productos]">
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
espero que me puedan ayudar gracias cualquier comentario es bienvenido gracias otra vez
Valora esta pregunta
0