none
Llenar DataGridView: DatagridviewCombobox y DatagridviewTextBox RRS feed

  • Pregunta

  • Hola espero alguien pueda ayudarme con esta cuestion:

    Estoy desarrollando un sistema de inventarios y lo que quiero realizar es lo siguiente quiero llenar un DataGridView como dice el titulo pero necesito que este contenga 2 DataGridviewCombobox y 3 DataGridViewTextbox para eso tengo la siguiente consulta de donde obtengo los datos:

            Dim cnn As SqlClient.SqlConnection : cnn = Nothing
            cnn = New SqlClient.SqlConnection(My.Settings.conexionInventarios)
            Dim sel = "select codigo, descripcion, cantidad, exismin, exismax from tbaProducto p " & _
            "inner join tbamovdet m on p.idproducto=m.idproducto " & _
            "left join tbaexistencia e on e.idproducto=p.idproducto " & _
            "where m.idmov=1"
            cnn.Open()
            Dim MiSqladapter As New SqlClient.SqlDataAdapter
            MiSqladapter.SelectCommand = New SqlClient.SqlCommand(sel, cnn)
            cnn.Close()

            Dim TbaMovDet As New DataTable()
            MiSqladapter.Fill(TbaMovDet)

            Me.DGMovimientos.DataSource = TbaMovDet

    Hasta aqui si obtengo los datos y relleno mi DataGridview pero lo que hace es que me los pone todo al final de todas las columnas que ya tengo pre-establecidas y lo que quiero es llenar las columnas pre-establecidas que son los combos y los textbox's con los valores que salen de dicha consulta.

    De antemano muchas gracias...
    martes, 27 de enero de 2009 17:11

Todas las respuestas

  • Si quieres llenar tus DropDownlist y TextBox
    Primero debes de colocar las columnnas de tipo Template

    considera este ejemplo para el TextBox solo tienes que asignar l el valor asi

     <asp:TemplateField HeaderText="5">
                        <ItemTemplate>
                            <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("5") %>'  Width="17px"  AutoCompleteType="Disabled"  OnTextChanged="TextBox_TextChanged" Font-Size="7pt" ></asp:TextBox>
                            <asp:RegularExpressionValidator id="RegularExpressionValidator6" runat="server" ControlToValidate="TextBox6" ValidationExpression="^-{0,1}\d*\.{0,1}\d+$" ErrorMessage="**" Display="Dynamic" ToolTip="Numero Invalido"></asp:RegularExpressionValidator>
                        </ItemTemplate>
                    </asp:TemplateField>

    /*************************este el TextBox  
    Text='<%# Bind("Tu Campo") %>'  ************
    <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("5") %>'  Width="17px"  AutoCompleteType="Disabled"  OnTextChanged="TextBox_TextChanged" Font-Size="7pt" ></asp:TextBox>

    /**********************************
    <asp:GridView ID="gvStates" AutoGenerateColumns="false"
    runat="server" OnRowCreated="gvStates_RowCreated">
    <Columns>
    <asp:BoundField HeaderText="State" DataField="Name" />
    <asp:TemplateField HeaderText="Cities">
    <ItemTemplate>
    <aspBig SmileropDownList ID="ddlCities"
    AutoPostBack="true" runat="server"
    OnSelectedIndexChanged="ddlCities_SelectedIndexChanged">
    </aspBig SmileropDownList>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    </asp:GridView>

    <asp:Label ID="lblCity" runat="server" Text="Label">
    </
    asp:Label>

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    // Create states array and bind it to Grid
    ArrayList states = new ArrayList();

    string[] cities =
    new string[] { "Portland", "Salem", "Eugene" };
    State state = new State("OR", cities);
    states.Add(state);
    cities =
    new string[] { "Seattle", "Tacoma", "Olympia" };
    state = new State("WA", cities);
    states.Add(state);

    this.gvStates.DataSource = states;
    this.gvStates.DataBind();
    }
    }

    protected void gvStates_RowCreated(object sender,
    GridViewRowEventArgs e)
    {
    if (!IsPostBack)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    // Bind drop down to cities
    DropDownList ddl =
    (DropDownList)e.Row.FindControl("ddlCities");
    ddl.DataSource = ((State)e.Row.DataItem).Cities;
    ddl.DataBind();
    }
    }
    }

    protected void ddlCities_SelectedIndexChanged(object sender,
    EventArgs e)
    {
    this.lblCity.Text = ((DropDownList)sender).SelectedValue;
    }
    martes, 27 de enero de 2009 19:12
  • No es lo que intento hacer tal vez no fui muy explicito, si asi es me gustaria me lo dijeran y estoy trabajando con la plataforma Vb .Net 2008

    De antemano gracias de nuevo
    martes, 27 de enero de 2009 19:55
  • Ha lo que entiendo es que quieres llenar con la informacion que traes tu DropDowList y TextBox !!!

    Bueno si ya la traes pues ya solo asignala a tus Cotroles

    Ejemplo

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="226px" Width="288px">
                <Columns>
                    <asp:BoundField HeaderText="Nombre" DataField="Name" />
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <aspBig SmileropDownList ID="DropDownList1" DataTextField="Name" DataValueField="ID" DataSource="<%#TableData() %>" runat="server">
                            </aspBig SmileropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:TextBox ID="TextBox2" Text=<%#Bind("Password") %> runat="server"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>


     protected void Page_Load(object sender, EventArgs e)
        {
            GridView1.DataSource = TableData();
            GridView1.DataBind();

        }
      #region 10 Rows Datatable Generation
        static System.Random r = new Random();
        static string GetAName
        {
            get
            {
                ArrayList al = new ArrayList();
                al.Add("John Doe");
                al.Add("Perry White");
                al.Add("Jackson");
                al.Add("Henry James Junior Ford");
                al.Add("Bill Norton");
                al.Add("Michal Johnathan Stewart ");
                al.Add("George Wilson");
                al.Add("Steven Edwards");
                return al[r.Next(0, al.Count)].ToString();
            }
        }
       public DataTable TableData()
        {
          
                DataTable dt = new DataTable();
                dt.Columns.Add("ID");
                dt.Columns.Add("Name");
                dt.Columns.Add("Date of Birth", typeof(DateTime));
                dt.Columns.Add("Phone Number");
                dt.Columns.Add("Mobile Phone");
                dt.Columns.Add("Password");

                for (int x = 0; x <= 10; x++)
                {
                    DataRow dr = dt.NewRow();
                    dr["ID"] = x.ToString();
                    dr["Name"] = GetAName;
                  
                    dr["Date of Birth"] = new DateTime(r.Next(1940, 1984), r.Next(1, 12), r.Next(1, 28));
                    dr["Phone Number"] = "555-" + r.Next(100000, 999999).ToString();
                    dr["Mobile Phone"] = "444-" + r.Next(100000, 999999).ToString();
                    dr["Password"] = r.Next(10000000, 99999999).ToString();
                    dt.Rows.Add(dr);
                }

                return dt;
           
        }
        #endregion

    martes, 27 de enero de 2009 22:08
  • Ya resolvi el problema de antemano gracias por preocuparte...
    miércoles, 28 de enero de 2009 16:31