简体   繁体   中英

How to load data to textboxes from the datagrivew

I have a two textboxes with datagridview. I am inserting and editing. so what i want is to be able to click the user from the datagridview and get the dataloaded into the textboxes so that i can edit and save.

How can i do that ?

my Insert code

protected void btndrivers_Click(object sender, EventArgs e)
{
    try
    {
           Drivers _da = new Drivers();
        int _driversId = 0;
        int SaveMode = 0;

        OConnection = new SqlConnection(_ConnectionString);
        oCommand = new SqlCommand("SELECT Drivername from TB_DRIVER WHERE Drivername = @Drivername AND DriverID <> @DriverID", OConnection);
        oCommand.Parameters.AddWithValue("@Drivername", txtdrivername.Text.Trim());
        oCommand.Parameters.AddWithValue("@DriverID", _driversId.ToString());
        OConnection.Open();
        SqlDataReader oReader = oCommand.ExecuteReader();
        if (oReader.HasRows)
        {
            lblexist.Visible = true;
            lblexist.Text = "Driver name " + txtdrivername.Text.Trim() + " already exist! ";
        }
        else
        {
            switch (SaveMode)
            {
                case 1:
                    {
                     bool _var = _da.AddnewDrivers
                         (_driversId, 
                         txtdrivername.Text, 
                         txtdriversurname.Text
                         );                 
                    }
                    break;

                case 2:
                    {
                        bool _var = _da.UpdateDrivers
                            (_driversId, 
                            txtdrivername.Text, 
                            txtdriversurname.Text
                            );
                    }
                    break;
            }

            if (SaveMode == 2)
            {
                lblInfor.Text = "CONFIRMATION: New drivers details saved successfully.....";
                LoadDrivers();
            }

            imgInfo.Visible = true;
            lblInfor.Visible = true;
            lblInfor.Text = "CONFIRMATION: New drivers details saved successfully.....";
            LoadDrivers();

        }
        txtdrivername.Text = "";
        txtdriversurname.Text = "";

    }
    catch (Exception ex)
    {
    }
} 


protected void GrdDrivers_SelectedIndexChanged(object sender, EventArgs e)
{
    LoadDrivers();
    {
        if (_driversId != 0)
        {
            SaveMode = 2;
            Odataset = _da.GetDriversDetails(_driversId);
            if (Odataset.Tables[0].Rows.Count > 0)
            {
                txtdrivername.Text = Odataset.Tables[0].Rows[0][1].ToString();
                txtdriversurname.Text = Odataset.Tables[0].Rows[0][1].ToString();
            }
        }
        else
        {
            lblErr.Text = "Please select records and continue";
        }
    }
}

grid

  <asp:GridView ID="GrdDrivers" runat="server" AutoGenerateColumns="False" 
                BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" 
                CellPadding="4" CellSpacing="3" ForeColor="Black" 
                Width="100%" onrowcommand="GrdDrivers_RowCommand" 
                onselectedindexchanged="GrdDrivers_SelectedIndexChanged" > 
                <Columns>
                    <asp:TemplateField HeaderText="">
                        <ItemTemplate>
                            <asp:LinkButton ID="lbtSno" runat="server" CausesValidation="False" 
                                CommandArgument='<%# Eval("Drivername")%>' CommandName="StrucID" ForeColor="red">Edit</asp:LinkButton>

                        </ItemTemplate>
                        <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="15%" />
                        <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    </asp:TemplateField>
                    <asp:BoundField DataField="Drivername" HeaderStyle-Width="30%" 
                        HeaderText="Driver Name" ItemStyle-HorizontalAlign="Center" 
                        ItemStyle-VerticalAlign="Middle">
                    <HeaderStyle Width="30%" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    </asp:BoundField>
                    <asp:BoundField DataField="DriverSurname" HeaderStyle-Width="30%" 
                        HeaderText="Driver Surname" ItemStyle-HorizontalAlign="Center" 
                        ItemStyle-VerticalAlign="Middle">
                    <HeaderStyle Width="30%" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    </asp:BoundField>
                </Columns>
                <RowStyle BackColor="White" />
                <FooterStyle BackColor="#CCCCCC" />
                <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
                <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#4B6C9E" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="#E3EAEB" />
            </asp:GridView>

On datagridview mouseclick / cellcontent click 'events' provide code to get filled into textbox.

  textBox1.Text = datagridview.Cells[1].Value.ToString();

where '1' is cell index.

Try This..

 protected void btnSave_Click(object sender, EventArgs e) { if (btnSave.Text == "Save") { int ID = Convert.ToInt32(txtdriverId.Text); int name= Convert.ToInt32(txtdrivername.Text); string sqlstr = "insert into TB_DRIVER(driverId,drivername) values(" + ID + "," + name + ")"; SqlCommand cmd = new SqlCommand(sqlstr, con); con.Open(); int i = cmd.ExecuteNonQuery(); con.Close(); BindGrid(); btnSave.Text = "Save"; } if (btnSave.Text == "Update") { int ID = Convert.ToInt32(driverId.Text); int name= Convert.ToInt32(txtdrivername.Text); sqlstr = "update TB_DRIVER set driverId=" + ID + ", drivername=" + name + " where driverId=" + ID; SqlCommand cmd = new SqlCommand(sqlstr, con); con.Open(); int i = cmd.ExecuteNonQuery(); con.Close(); BindGrid(); btnSave.Text = "Save"; } } protected void GrdDrivers_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { int ID = Convert.ToInt32(e.CommandArgument); ViewState["ID"] = ID; string str = "select * from TB_DRIVER where driverId = '" + ID + "'"; SqlCommand cmd = new SqlCommand(str, con); con.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { txtdriverId.Text = dr[0].ToString(); txtdrivername.Text = dr[1].ToString(); } con.Close(); btnSave.Text = "Update"; } BindGrid(); } protected void GrdDrivers_RowEditing(object sender, GridViewEditEventArgs e) { } protected void GrdDrivers_RowDeleting(object sender, GridViewDeleteEventArgs e) { } public void BindGrid() { string sqlstr = "Select * from TB_DRIVER"; SqlDataAdapter da = new SqlDataAdapter(sqlstr, con); DataTable ds = new DataTable(); da.Fill(ds); GrdDrivers.DataSource = ds; GrdDrivers.DataBind(); } 
 <asp:GridView ID="GrdDrivers" runat="server" AutoGenerateColumns="false" HorizontalAlign="Center" OnRowCommand="GrdDrivers_RowCommand" OnRowDeleting="GrdDrivers_RowDeleting" OnRowEditing="GrdDrivers_RowEditing"> <Columns> <asp:TemplateField HeaderText="Driver ID"> <ItemTemplate> <asp:Label ID="lblDriverID" runat="server" Text='<%# Bind("DriverID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Driver Name"> <ItemTemplate> <asp:Label ID="lblDrivername" runat="server" Text='<%# Bind("Drivername") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" Text="Edit" CommandArgument='<%# Eval("DriverID") %>'></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> 

inside gridview button:

   <asp:LinkButton runat="server" ID="lnkEdit" OnClick="lnkEdit_Click" Text="Edit"></asp:LinkButton>

on cs page:

  protected void lnkEdit_Click(object sender, EventArgs e)
    {
        GridViewRow row = (GridViewRow)((LinkButton)sender).NamingContainer;

        txt1.Text = row.Cells[0].Text;
        txt2.Text = row.Cells[1].Text;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM