• Domingo 22 de Diciembre de 2024, 18:44

Autor Tema:  datagrid en user control  (Leído 2078 veces)

kancerman

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
datagrid en user control
« en: Jueves 19 de Abril de 2012, 21:17 »
0
hola a todos tengo un problemilla que paso a describir

tengo un user control que lo unico que tiene es un datagrid con datos que se cargan desde base de datos,
el datagrid tiene 2 columnas una con descripcion y la otra con checkbox esta ultima columna tiene como id "checkboxSelect"
cree un metodo que recorre el datagrid y guarda la descripcion de las filas seleccionadas en la columna "checkboxSelect" y devuelve esta lista.
el problema es que desde el aspx donde tengo incrustado el user control llamo al metodo del usercontrol pero no me reconoce las filas seleccionadas adjunto el codigo del recorrido del datagrid, este mismo metodo lo probe con un datagrid en el mismo aspx me refiero no dentro de un user control y funciona perfectamente
Código: C#
  1.         DataGridItemCollection items = dataGrid1.Items;
  2.         for (int i = 0; i < items.Count; i++)
  3.         {
  4.             CheckBox cb = (CheckBox)items[i].FindControl("checkboxSelect");
  5.             string descripcion = items[i].Cells[1].Text;
  6.             if ((cb != null) && cb.Checked)
  7.             {
  8.                 lista.Add(descripcion);
  9.             }
  10.         }
  11.  

ojala puedan ayudarme y de antemano muchas gracias
« última modificación: Jueves 19 de Abril de 2012, 21:19 por kancerman »

droezva

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re:datagrid en user control
« Respuesta #1 en: Domingo 22 de Abril de 2012, 06:46 »
0
Hola que  tal, pues al parece no tiene ningún problema tal vez el detalle se da como se crea el contenido de tus dataGrid
bueno hay te dejo un ejemplo que hice tratando de ver cual era el problema practicamente es como el que tu comentas, al menos si me funcionó aunque pasaba lo que tu me dices hasta que rellene los datos de esta forma ;D espero que te sirva igual cargo los datos desde una Base de Datos.

Código: vb.net
  1. <%@ Page Language="C#" AutoEventWireup="True" %>
  2. <%@ Import Namespace="System.Data" %>
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" >
  7.  
  8.  
  9.    <script language="C#" runat="server">
  10.            
  11.       ICollection CreateDataSource()
  12.       {          
  13.          DataView dbv = (DataView)SqlDataSource.Select(DataSourceSelectArguments.Empty);                      
  14.          DataTable dt = new DataTable();
  15.          DataRow dr;
  16.          dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
  17.          for (int i = 0; i < dbv.Table.Rows.Count; i++)
  18.          {
  19.             dr = dt.NewRow();
  20.             dr[0] = dbv.Table.Rows[i][0];          
  21.             dt.Rows.Add(dr);
  22.          }
  23.          return new DataView(dt);
  24.       }
  25.  
  26.       void Page_Load(Object sender, EventArgs e)
  27.       {
  28.          if (!IsPostBack)
  29.          {            
  30.             dataGrid1.DataSource = CreateDataSource();
  31.             dataGrid1.DataBind();
  32.          }
  33.       }
  34.  
  35.       ArrayList Seleccionados()
  36.       {
  37.           ArrayList lista = new ArrayList();
  38.           DataGridItemCollection items = dataGrid1.Items;
  39.           for (int i = 0; i < items.Count; i++)
  40.           {
  41.               CheckBox cb = (CheckBox)items[i].FindControl("checkboxSelect");              
  42.               if ((cb != null) && cb.Checked)            
  43.                   lista.Add(  items[i].Cells[0].Text );
  44.           }
  45.           return lista;          
  46.       }
  47.        
  48.       void SubmitBtn_Click(Object sender, EventArgs e)      
  49.       {
  50.           ArrayList lista = Seleccionados();
  51.           string text = "Seleccionados:<br />";
  52.           for (int i = 0; i < lista.Count; i++)
  53.               text += (lista[i] + "<br />");
  54.           Mensaje.Text = text;
  55.       }
  56.    </script>
  57.  
  58. <head runat="server">
  59.     <title>CheckBox</title>
  60. </head>
  61. <body>
  62.     <asp:SqlDataSource
  63.           id="SqlDataSource"
  64.           runat="server"
  65.           ConnectionString="<%$ ConnectionStrings:ApplicationServices%>"
  66.           SelectCommand="SELECT descripcion FROM datosGrid">
  67.       </asp:SqlDataSource>
  68.    <form id="Formulario" runat="server">
  69.  
  70.    <h3>Seleccionar Datos</h3>
  71.  
  72.    <table cellpadding="5">
  73.       <tr valign="top">
  74.          <td>
  75.  
  76.             <b>Datos</b>
  77.  
  78.             <asp:DataGrid id="dataGrid1"                
  79.                  BorderWidth="1"                
  80.                  AutoGenerateColumns="false"
  81.                  runat="server">
  82.  
  83.                <HeaderStyle BackColor="#006699" />              
  84.  
  85.                <Columns>
  86.                   <asp:BoundColumn
  87.                        HeaderText="Item"
  88.                        DataField="StringValue"/>
  89.    
  90.                   <asp:TemplateColumn HeaderText="Seleccion" >
  91.                         <ItemTemplate>
  92.                             <asp:CheckBox ID="checkboxSelect" runat="server" />
  93.                         </ItemTemplate>
  94.                      </asp:TemplateColumn>
  95.                </Columns>
  96.  
  97.             </asp:DataGrid>
  98.  
  99.          </td>        
  100.       </tr>
  101.    </table>
  102.       <asp:Button id="BotonEnviar"
  103.            Text="Verificar"
  104.            OnClick="SubmitBtn_Click"
  105.            runat="server"/>
  106.    </form>
  107.    <asp:label id="Mensaje" runat="server"/>
  108. </body>
  109. </html>
  110.  

Saludos