I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Good morning friends, I have covered many article on Gridview binding. Today i am talking about Gridview with link button.In this article we will do something different like delete row when we press the delete link button. To do this task, first to design the Gridview with link button after that perform some operation on link button.
Source Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function ConfirmationBox(countryname) {
var finalresult = confirm('Are you sure you want to delete' + countryname + 'details');
if (finalresult) {
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="CountryId" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="CountryId" HeaderText="Country Id" />
<asp:BoundField DataField="CountryName" HeaderText="Country Name" />
<asp:TemplateField HeaderText="delete">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Delete Country</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
<p>
</p>
</body>
</html>
In the above mentioned code we have a script block which is used for giving confirmation message when we click on link button. Also we have a Gridview with three column , first two starting columns bind with the country table, in the third column we have a delete link button.
Source Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function ConfirmationBox(countryname) {
var finalresult = confirm('Are you sure you want to delete' + countryname + 'details');
if (finalresult) {
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="CountryId" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="CountryId" HeaderText="Country Id" />
<asp:BoundField DataField="CountryName" HeaderText="Country Name" />
<asp:TemplateField HeaderText="delete">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Delete Country</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
<p>
</p>
</body>
</html>
In the above mentioned code we have a script block which is used for giving confirmation message when we click on link button. Also we have a Gridview with three column , first two starting columns bind with the country table, in the third column we have a delete link button.
CodeBehind Code
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default3 : System.Web.UI.Page
{
SqlConnection con;
SqlCommand cmd;
DataSet ds;
public Default3()
{
con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
cmd = new SqlCommand();
ds = new DataSet();
}
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
bindgridview();
}
}
private void bindgridview()
{
con.Open();
cmd.CommandText = "select * from [country]";
cmd.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
con.Close();
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
string countryname = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "CountryName"));
LinkButton lnkbutton = (LinkButton)e.Row.FindControl("LinkButton1");
lnkbutton.Attributes.Add("onclick", "JavaScript:return ConfirmationBox('" + countryname + "')");
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
GridViewRow gridrow = lnk.NamingContainer as GridViewRow;
int countryid = Convert.ToInt32(GridView1.DataKeys[gridrow.RowIndex].Value.ToString());
con.Open();
cmd.CommandText = "delete from [country] where CountryId=" + countryid;
cmd.Connection = con;
int a = cmd.ExecuteNonQuery();
con.Close();
if(a>0)
{
bindgridview();
}
}
}
Output of the following mentioned code
In the above mentioned code, first to bind the gridview with the DataSet. By the RowDataBound event we have to generate confirmation message using java script. So first of all get the country name by the eval method. Also get the link button from Gridview using findControl( ) method. Now you can call javaScript method on LinkButton
By the help of link button event handler we are deleting the row from the Gridview which is mentioned in the code. So first of all get the countryid from the binded gridview then execute delete statement.
Output of the following mentioned code
In the above mentioned code, first to bind the gridview with the DataSet. By the RowDataBound event we have to generate confirmation message using java script. So first of all get the country name by the eval method. Also get the link button from Gridview using findControl( ) method. Now you can call javaScript method on LinkButton
By the help of link button event handler we are deleting the row from the Gridview which is mentioned in the code. So first of all get the countryid from the binded gridview then execute delete statement.
Comments
Post a Comment