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.