Showing posts with label gridview. Show all posts
Showing posts with label gridview. Show all posts

Tuesday, 1 April 2014

Export GridView Data with Image in C#.net

Write this code on .aspx page

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="Name" HeaderText="Name" />
                <asp:BoundField DataField="Job" HeaderText="Job" />
                <asp:BoundField DataField="Location" HeaderText="Location" />
                <asp:ImageField DataImageUrlField="Image" HeaderText="Image">
                </asp:ImageField>
            </Columns>
        </asp:GridView>
        <asp:Button ID="Button1" runat="server" Text="Export" onclick="Button1_Click" />
    </div>
    </form>
</body>
</html>





copy & paste this code on .cs page....

protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            FillGridview();
        }
    }

    private void FillGridview()
    {
        DataTable table = new DataTable();
        table.Columns.Add("Name", typeof(string));
        table.Columns.Add("Job", typeof(string));
        table.Columns.Add("Location", typeof(string));
        table.Columns.Add("Image");

        table.Rows.Add("JP", "XXX", "QQQQ", "http://localhost:10735/WebSite2/image/sub-menu-corner.png");
        table.Rows.Add("HP", "TTT", "AAAA", "http://localhost:10735/WebSite2/image/sub-menu-corner-2.png");
        table.Rows.Add("SQ", "YYY", "HHHH", "http://localhost:10735/WebSite2/image/section1-bg.jpg");
        table.Rows.Add("XS", "EEE", "UUUU", "http://localhost:10735/WebSite2/image/form-bg.png");
        GridView1.DataSource = table;
        ViewState["dt"] = table;
        GridView1.DataBind();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView1.AllowPaging = false;
        DataTable dt = (DataTable)ViewState["dt"];
        GridView1.DataSource = dt;
        GridView1.DataBind();

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = GridView1.Rows[i];
            //Apply text style to each Row
            row.Attributes.Add("class", "textmode");
        }
        GridView1.RenderControl(hw);
        //style to format numbers to string
        string style = @"<style> .textmode { mso-number-format:\@; } </style>";
        Response.Write(style);
        Response.Output.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }
    public override void VerifyRenderingInServerForm(Control control)
    {

    }


Result:


Monday, 30 December 2013

GridView Insert,Update,Edit and Delete in C#.net

On .aspx Page:

<asp:GridView ID="gvDetails"  runat="server"
AutoGenerateColumns="false" CssClass="Gridview" HeaderStyle-BackColor="#61A6F8"
ShowFooter="true" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="White"
onrowcancelingedit="gvDetails_RowCancelingEdit"
onrowdeleting="gvDetails_RowDeleting" onrowediting="gvDetails_RowEditing"
onrowupdating="gvDetails_RowUpdating"
onrowcommand="gvDetails_RowCommand">
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server"ImageUrl="~/Images/update.png" ToolTip="Update" Height="20px" Width="20px" />
<asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel"ImageUrl="~/Images/Cancel.png" ToolTip="Cancel" Height="20px" Width="20px" />
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="~/Images/Edit.png"ToolTip="Edit" Height="20px" Width="20px" />
<asp:ImageButton ID="imgbtnDelete" CommandName="Delete" Text="Edit" runat="server"ImageUrl="~/Images/delete.png" ToolTip="Delete" Height="20px" Width="20px" />
</ItemTemplate>
<FooterTemplate>
<asp:ImageButton ID="imgbtnAdd" runat="server" ImageUrl="~/Images/AddNewitem.jpg"CommandName="AddNew" Width="30px" Height="30px" ToolTip="Add new User"ValidationGroup="validaiton" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="UserName">
<EditItemTemplate>
<asp:Label ID="lbleditusr" runat="server" Text='<%#Eval("Username") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblitemUsr" runat="server" Text='<%#Eval("UserName") %>'/>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtftrusrname" runat="server"/>
<asp:RequiredFieldValidator ID="rfvusername" runat="server" ControlToValidate="txtftrusrname" Text="*"ValidationGroup="validaiton"/>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City">
<EditItemTemplate>
<asp:TextBox ID="txtcity" runat="server" Text='<%#Eval("City") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblcity" runat="server" Text='<%#Eval("City") %>'/>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtftrcity" runat="server"/>
<asp:RequiredFieldValidator ID="rfvcity" runat="server" ControlToValidate="txtftrcity" Text="*"ValidationGroup="validaiton"/>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Designation">
<EditItemTemplate>
<asp:TextBox ID="txtDesg" runat="server" Text='<%#Eval("Designation") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblDesg" runat="server" Text='<%#Eval("Designation") %>'/>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtftrDesignation" runat="server"/>
<asp:RequiredFieldValidator ID="rfvdesignation" runat="server" ControlToValidate="txtftrDesignation"Text="*" ValidationGroup="validaiton"/>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div>
<asp:Label ID="lblresult" runat="server"></asp:Label>


 



After that on .cs File:


SqlConnection con = new SqlConnection("Data Source=BRIJESH-PC;Integrated Security=true;Initial Catalog=TEST");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindEmployeeDetails();
}
}
protected void BindEmployeeDetails()
{
con.Open();
SqlCommand cmd = new SqlCommand("Select * from Employee_Details", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
if (ds.Tables[0].Rows.Count > 0)
{
gvDetails.DataSource = ds;
gvDetails.DataBind();
}
else
{
ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
gvDetails.DataSource = ds;
gvDetails.DataBind();
int columncount = gvDetails.Rows[0].Cells.Count;
gvDetails.Rows[0].Cells.Clear();
gvDetails.Rows[0].Cells.Add(new TableCell());
gvDetails.Rows[0].Cells[0].ColumnSpan = columncount;
gvDetails.Rows[0].Cells[0].Text = "No Records Found";
}
}
protected void gvDetails_RowEditing(object sender, GridViewEditEventArgs e)
{
gvDetails.EditIndex = e.NewEditIndex;
BindEmployeeDetails();
}
protected void gvDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int userid = Convert.ToInt32(gvDetails.DataKeys[e.RowIndex].Value.ToString());
string username = gvDetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
TextBox txtcity = (TextBox)gvDetails.Rows[e.RowIndex].FindControl("txtcity");
TextBox txtDesignation = (TextBox)gvDetails.Rows[e.RowIndex].FindControl("txtDesg");
con.Open();
SqlCommand cmd = new SqlCommand("update Employee_Details set City='" + txtcity.Text + "',Designation='" + txtDesignation.Text + "' where UserId=" + userid, con);
cmd.ExecuteNonQuery();
con.Close();
lblresult.ForeColor = Color.Green;
lblresult.Text = username + " Details Updated successfully";
gvDetails.EditIndex = -1;
BindEmployeeDetails();
}
protected void gvDetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvDetails.EditIndex = -1;
BindEmployeeDetails();
}
protected void gvDetails_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int userid = Convert.ToInt32(gvDetails.DataKeys[e.RowIndex].Values["UserId"].ToString());
string username = gvDetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
con.Open();
SqlCommand cmd = new SqlCommand("delete from Employee_Details where UserId=" + userid, con);
int result = cmd.ExecuteNonQuery();
con.Close();
if (result == 1)
{
BindEmployeeDetails();
lblresult.ForeColor = Color.Red;
lblresult.Text = username + " details deleted successfully";
}
}
protected void gvDetails_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("AddNew"))
{
TextBox txtUsrname = (TextBox)gvDetails.FooterRow.FindControl("txtftrusrname");
TextBox txtCity = (TextBox)gvDetails.FooterRow.FindControl("txtftrcity");
TextBox txtDesgnation = (TextBox) gvDetails.FooterRow.FindControl("txtftrDesignation");
con.Open();
SqlCommand cmd =
new SqlCommand(
"insert into Employee_Details(UserName,City,Designation) values('" + txtUsrname.Text + "','" +
txtCity.Text + "','" + txtDesgnation.Text + "')", con);
int result= cmd.ExecuteNonQuery();
con.Close();
if(result==1)
{
BindEmployeeDetails();
lblresult.ForeColor = Color.Green;
lblresult.Text = txtUsrname.Text + " Details inserted successfully";
}
else
{
lblresult.ForeColor = Color.Red;
lblresult.Text = txtUsrname.Text + " Details not inserted";
}
}
}

Saturday, 7 December 2013

Export Selected GridViewRow to Excel on button click in C#.NET

Copy & Paste this on .aspx file:

<asp:GridView ID="gvDetails" runat="server" AutoGenerateColumns="False" CellPadding="4"
                            BackColor="#5DA63A" ForeColor="White" Width="100%" AllowPaging="false" Style="border-radius: 10px;
                            border: Solid 3px #5DA63A; text-align: left; word-wrap: break-word; word-break: break-all">
                            <AlternatingRowStyle BackColor="#F1FCCA"></AlternatingRowStyle>
                            <RowStyle BackColor="#DEDFDE" ForeColor="Black" CssClass="grid_font" />
                            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
                            <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
                            <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
                            <HeaderStyle BackColor="#8EBE12" Font-Bold="False" ForeColor="#E7E7FF" />
                            <Columns>
                                <asp:TemplateField ItemStyle-Width="20px">
                                    <HeaderTemplate>
                                        <asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" 
                                            oncheckedchanged="chkAll_CheckedChanged" />
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="True" 
                                            oncheckedchanged="chkSelect_CheckedChanged" />
                                    </ItemTemplate>
                                    <ItemStyle Width="20px" />
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="EIEUID" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblid" runat="server" Text='<%#Eval("EIEUid")%>'></asp:Label>
                                        </ItemTemplate> 
                                        <HeaderStyle HorizontalAlign="Left"></HeaderStyle>
                                        <ItemStyle Width="60px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Name" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblname" runat="server" Text='<%#Eval("Name")%>'></asp:Label>
                                        </ItemTemplate> 
                                        <HeaderStyle HorizontalAlign="Left"></HeaderStyle>
                                        <ItemStyle Width="150px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Details" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblemail" runat="server" Text='<%#Eval("Email")%>'></asp:Label>
                                        </ItemTemplate> 
                                        <HeaderStyle HorizontalAlign="Left"></HeaderStyle>
                                        <ItemStyle Width="160px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Mobile" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblmobile" runat="server" Text='<%#Eval("Mobile")%>'></asp:Label>
                                        </ItemTemplate> 
                                        <HeaderStyle HorizontalAlign="Left"></HeaderStyle>
                                        <ItemStyle Width="120px" />
                                    </asp:TemplateField>
                            </Columns>
                        </asp:GridView>



Copy & Paste this on .cs Code File:

dataUtility du = new dataUtility();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                BindGridData();
        }

        /// This Method is used to bind gridview
        private void BindGridData()
        {
            try
            {
                DataTable dtnew = new DataTable();
                DataTable dt = new DataTable();
                dt = du.executeStoteProc("SP_CLIENT 5,'" + Session["Name"] + "','',''");
               
                    if (dt.Rows.Count > 0)
                    {
                        gvDetails.DataSource = dt;
                        gvDetails.DataBind();

                    }
                    else
                    {
                        dt.Rows.Add(dt.NewRow());
                        gvDetails.DataSource = dt;
                        gvDetails.DataBind();
                        int columncount = gvDetails.Rows[0].Cells.Count;
                        gvDetails.Rows[0].Cells.Clear();
                        gvDetails.Rows[0].Cells.Add(new TableCell());
                        gvDetails.Rows[0].Cells[0].ColumnSpan = columncount;
                        gvDetails.Rows[0].Cells[0].Text = "No Records Found";
                    }
                }

            }
            catch (Exception ex)
            {

            }
        }

        /// enable gridview control to be rendered
        public override void VerifyRenderingInServerForm(Control control)
        {
            /*Verifies that the control is rendered */
        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            ExportToExcell();
        }

        /// export gridview to excel
        private void ExportToExcell()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Details");
            dt.Columns.Add("Mobile");
            foreach (GridViewRow row in gvDetails.Rows)
            {
                CheckBox chkCalls = (CheckBox)row.FindControl("chkSelect");
                if (chkCalls.Checked == true)
                {
                    int i = row.RowIndex;
                    Label lblname = (Label)gvDetails.Rows[i].FindControl("lblname");
                    Label lblemail = (Label)gvDetails.Rows[i].FindControl("lblemail");
                    Label lblmobile = (Label)gvDetails.Rows[i].FindControl("lblmobile");

                    DataRow dr = dt.NewRow();
                    dr["Name"] = Convert.ToString(lblname.Text);
                    dr["Details"] = Convert.ToString(lblemail.Text);
                    dr["Mobile"] = Convert.ToString(lblmobile.Text);
                    dt.Rows.Add(dr);
                }
            }
            GridView gdvExportxls = new GridView();
            gdvExportxls.DataSource = dt;
            gdvExportxls.DataBind();
            gdvExportxls.HeaderStyle.Font.Bold = true;
            gdvExportxls.HeaderStyle.ForeColor = Color.White;
            gdvExportxls.HeaderStyle.BackColor = Color.Green;
            Response.Clear();
            Response.Buffer = true;
            Response.ContentType = "application/ms-excel";
            Response.AddHeader("content-disposition", string.Format("attachment;filename=ReferrerDetails.xls", "selectedrows"));
            Response.Charset = "";
            StringWriter stringwriter = new StringWriter();
            HtmlTextWriter htmlwriter = new HtmlTextWriter(stringwriter);
            gdvExportxls.RenderControl(htmlwriter);
            Response.Write(stringwriter.ToString().Replace("<div>", " ").Replace("</div>", " "));
            Response.End();

        }

        /// select/unselect all row using header checkbox
        protected void chkAll_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                CheckBox chkH = (CheckBox)gvDetails.HeaderRow.FindControl("chkAll");
                if (chkH.Checked == true)
                {
                    foreach (GridViewRow gv in gvDetails.Rows)
                    {
                        CheckBox chk = (CheckBox)gv.FindControl("chkSelect");
                        chk.Checked = true;
                    }
                }
                else
                {
                    foreach (GridViewRow gv in gvDetails.Rows)
                    {
                        CheckBox chk = (CheckBox)gv.FindControl("chkSelect");
                        chk.Checked = false;
                    }

                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

        /// select/unselect single row using row checkbox
        protected void chkSelect_CheckedChanged(object sender, EventArgs e)
        {
            bool isFound = false;
            CheckBox cbxall = (CheckBox)gvDetails.HeaderRow.FindControl("chkAll");
            foreach (GridViewRow gvr in gvDetails.Rows)
            {
                CheckBox chkSelect = gvr.FindControl("chkSelect") as CheckBox;
                if (chkSelect.Checked == false)
                {
                    isFound = true;
                    break;
                }

            }

            if (isFound)
                cbxall.Checked = false;
            else
                cbxall.Checked = true;

        }

Friday, 15 November 2013

Play All type of Video files in GridView with Literal Control using C#

Follow the instructions:

1.)  First Select asp Literal Control from Toolbox.

<asp:GridView ID="GridView1" runat="server" GridLines="None" ShowHeader="False" Width="100%"
                        AutoGenerateColumns="False" AllowPaging="true" PageSize="3" OnPageIndexChanging="GridView1_PageIndexChanging">
                        <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <table style="width: 100%" cellpadding="5px">
                                        <tr>
                                            <td valign="top">
                                                <h2 style="text-align: left; color: #771212">
                                                    <%#Eval("Title")%></h2>
                                                <hr />
                                                <div style="font-size: 13px; color: Gray; text-align: right">
                                                    Posted on <%#Eval("PostingDate")%></div>
                                                <p style="font-size: 15px; color: Black">
                                                    <div style="width: 280px; height: 220px; float: left; text-align:left">
                                                        <asp:Label ID="lblvideo" runat="server" Visible="false"><%#Eval("VedioFile")%>.<%#Eval("OriginalFileExtn") %></asp:Label>
                                                        
                                                        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
                                                    </div>
                                                    <%#Eval("Description")%></p>
                                            </td>
                                        </tr>
                                    </table>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="First" PreviousPageText="Previous"
                            NextPageText="Next" LastPageText="Last" />
                    </asp:GridView>

2.)  Copy and paste this code to your code file on GridView Binding


DataTable dt = App.GetDataTable("Select * from Blog order by PostingDate DESC");
            GridView1.DataSource = dt;
            GridView1.DataBind();
            foreach (GridViewRow gvrow in GridView1.Rows)
            {
                Label vurl = (Label)gvrow.FindControl("lblvideo");
                Literal Literal1 = (Literal)gvrow.FindControl("Literal1");
                string myobj = "";
                if (vurl.Text != "" && vurl.Text != null)
                {
                    myobj += "<video width='250' height='200' controls='controls' data-setup='{}'>";
                    myobj += "<source src='File/BlogFile/" + vurl.Text + "' type='video/ogg' />";
                    myobj += "Your browser does not support video";
                    myobj += "</object>";
                    myobj += "</video>";
                }
                else
                {
                    myobj = "<img src='File/BlogFile/blogging.jpg' width='250' height='200'/>";
                }
                Literal1.Text = myobj;

            }

Tuesday, 8 October 2013

ASP.NET - Export Gridview data to excel and directly send a mail with exported excel file

On Control Event use this code in C#:

                        GridView gdvExportxls = new GridView();
                        gdvExportxls.DataSource = dtnew;
                        gdvExportxls.DataBind();
                        MemoryStream ms = new MemoryStream();
                        System.IO.StringWriter stringWriter = new System.IO.StringWriter();
                        System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
                        gdvExportxls.RenderControl(htmlWriter);
                        byte[] excelFile = System.Text.Encoding.ASCII.GetBytes(stringWriter.ToString());
                        ms.Write(excelFile, 0, excelFile.Length);
                        ms.Position = 0;

                        Attachment attachment = new Attachment(ms, "Test.xls", "application/vnd.xls");
                        SendMail(attachment);


          private void SendMail(Attachment excel)
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
            mail.From = new MailAddress("brijesh.singh879@gmail.com")
            mail.Subject = "Export GridView to Excel";
            mail.Body = "mail with attachment";

            //System.Net.Mail.Attachment attachment;
            //attachment = excel;
            mail.Attachments.Add(excel);

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("brijesh.singh879@gmail.com", "*******");
            SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);

        }

Saturday, 5 October 2013

GridView Select all row using Header Checkbox or select one row using checkbox in C#.NET

Copy and Paste this code to .aspx Page :

<asp:GridView ID="GridView1" runat="server" Width="100%" BackColor="White" BorderColor="White"
                                BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" CellSpacing="1" GridLines="None"
                                AutoGenerateColumns="False" Style="font-size: 10pt">
                                <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
                                <PagerStyle BackColor="#669900" ForeColor="White" Font-Bold="true" />
                                <HeaderStyle BackColor="#669900" Font-Bold="True" ForeColor="#E7E7FF" />
                                <Columns>
                                    <asp:TemplateField HeaderText="Course" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="id" runat="server" Text='<%#Eval("Row_Id")%>' Visible="false"></asp:Label>
                                            <asp:Label ID="lblgrade" runat="server" Text='<%#Eval("Quali1")%>'></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="35px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Grade" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblsubgrade" runat="server" Text='<%#Eval("Quali2")%>'></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="45px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Roll No" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblroll" runat="server" Text='<%#Eval("RollNo")%>'></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="80px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Name" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name")%>'></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="180px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Father's Name" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lblfname" runat="server" Text='<%#Eval("FName")%>'></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="180px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Date" HeaderStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <asp:Label ID="lbldate" runat="server" Text=""></asp:Label>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                        <ItemStyle Width="70px" />
                                    </asp:TemplateField>
                                    <asp:TemplateField>
                                        <ItemTemplate>
                                            <asp:CheckBox ID="cbxap" runat="server" AutoPostBack="true" OnCheckedChanged="cbxap_CheckedChanged" />
                                        </ItemTemplate>
                                        <HeaderTemplate>
                                            A/P<asp:CheckBox ID="cbxapall" runat="server" AutoPostBack="true" OnCheckedChanged="cbxapall_CheckedChanged" />
                                        </HeaderTemplate>
                                        <ItemStyle Width="50px" />
                                    </asp:TemplateField>
                                </Columns>

                            </asp:GridView>


and .cs Page Code is given:

Bind GridView:
private void bindgridview()
        {
            try
            {
                DataTable dt = app.GetDataTable("select * from tb_Regstd_mst where Center='" + ddlcenter.SelectedItem.Text + "' and Quali1='" + ddlgrade.SelectedItem.Text + "' and Quali2='" + ddlsubgrade.SelectedItem.Text + "' order by RollNo Asc");
                GridView1.DataSource = dt;
                GridView1.DataBind();
                foreach (GridViewRow gv in GridView1.Rows)
                {
                    Label date = (Label)gv.FindControl("lbldate");
                    date.Text = DateTime.Now.ToShortDateString();
                }
                if (GridView1.Rows.Count <= 0)
                {
                    btnattd.Visible = false;
                    lblmsg.Text = "No Student Records Found in this Category.";
                }
                else
                {
                    lblmsg.Text = "";
                    btnattd.Visible = true;
                }
            }
            catch (Exception)
            {

            }

        }


On Header Checkbox checkchanged Event :
protected void cbxapall_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                CheckBox chkH = (CheckBox)GridView1.HeaderRow.FindControl("cbxapall");
                if (chkH.Checked == true)
                {
                    foreach (GridViewRow gv in GridView1.Rows)
                    {
                        CheckBox chk = (CheckBox)gv.FindControl("cbxap");
                        chk.Checked = true;
                    }
                }
                else
                {
                    foreach (GridViewRow gv in GridView1.Rows)
                    {
                        CheckBox chk = (CheckBox)gv.FindControl("cbxap");
                        chk.Checked = false;
                    }

                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }

        }


Checkchanged event of each row :
protected void cbxap_CheckedChanged(object sender, EventArgs e)
        {
            bool isFound = false;
            CheckBox cbxall = (CheckBox)GridView1.HeaderRow.FindControl("cbxapall");
            foreach (GridViewRow gvr in GridView1.Rows)
            {
                CheckBox chkSelect = gvr.FindControl("cbxap") as CheckBox;
                if (chkSelect.Checked == false)
                {
                    isFound = true;
                    break;
                }

            }

            if (isFound)
                cbxall.Checked = false;
            else
                cbxall.Checked = true;

        }

Monday, 5 August 2013

Select multiple date with limited range date selection from Ajax Calender control and show these in gridview in asp.net

.aspx contents:

<asp:Calendar ID="Calendar1" runat="server" BackColor="#CCF0C8" BorderColor="White"
           Font-Underline="false" BorderWidth="1px" Font-Names="Calibri" Font-Size="9pt"
           Font-Bold="true" ForeColor="Black" Height="155px" NextPrevFormat="ShortMonth"
           OnPreRender="Calendar1_PreRender" Width="170px" OnSelectionChanged="Calendar1_SelectionChanged" OnDayRender="Calendar1_DayRender">
<DayHeaderStyle Font-Bold="True" Font-Size="8pt" BackColor="#B4C86F" />
   <NextPrevStyle Font-Bold="True" Font-Size="12px" ForeColor="#F5E9CB" VerticalAlign="Bottom" />
    <OtherMonthDayStyle ForeColor="#999999" />
     <SelectedDayStyle BackColor="Maroon" ForeColor="White" />
     <TitleStyle BackColor="#227E15" BorderColor="White" BorderWidth="2px" Font-Bold="True"
                                                                                Font-Size="10pt" ForeColor="White" />

   </asp:Calendar>


<asp:GridView ID="GridView1" Font-Names="Calibri" Font-Size="Small" runat="server"
          EmptyDataText="No Selected Dates" CellPadding="4" AutoGenerateColumns="false"
          ForeColor="#333333" GridLines="None" Width="150px">
         <AlternatingRowStyle BackColor="#C4F9BD" />
        <HeaderStyle BackColor="#227E15" Font-Bold="True" ForeColor="White" Font-Size="14px" />
         <RowStyle BackColor="#EFF3FB" />
         <Columns>
         <asp:TemplateField HeaderText="Selected Date" ItemStyle-HorizontalAlign="Center">
               <ItemTemplate>
               <asp:Label ID="Label1" runat="server" Text='<%#                                                     DateTime.Parse(Container.DataItem.ToString()).ToString("yyyy-MM-dd") %>' ></asp:Label>
               </ItemTemplate>
          <ItemStyle HorizontalAlign="Center" Font-Bold="true" />
           </asp:TemplateField>
           </Columns>
           </asp:GridView>


C# code:

        public List<DateTime> SelectedDates
        {
            get
            {
                if (ViewState["Dates"] == null)
                    ViewState["Dates"] = new List<DateTime>() { DateTime.MaxValue.AddDays(-2) };
                return (List<DateTime>)ViewState["Dates"];
            }
            set
            {
                ViewState["Dates"] = value;
            }
        }
        protected void Calendar1_PreRender(object sender, EventArgs e)
        {
            // Reset Selected Dates
            Calendar1.SelectedDates.Clear();
            // Select previously Selected Dates
            foreach (DateTime dt in SelectedDates)
                Calendar1.SelectedDates.Add(dt);
        }
        protected void Calendar1_SelectionChanged(object sender, EventArgs e)
        {


            if (SelectedDates.Contains(Calendar1.SelectedDate))
                SelectedDates.Remove(Calendar1.SelectedDate);
            else
                SelectedDates.Add(Calendar1.SelectedDate);
            //update selection    
            GridView1.Visible = true;
            ViewState["Dates"] = SelectedDates;
            GridView1.DataSource = SelectedDates.Skip(1);
            GridView1.DataBind();
         
        }


        protected void Calendar1_DayRender(Object sender, DayRenderEventArgs e)
        {
         
            // Max day is to be the day before today, so subtract one day.
            DateTime maxDate = DateTime.Now.AddDays(ld);
            maxDate.AddDays(-1);
            if ((e.Day.Date > maxDate) || e.Day.Date.CompareTo(DateTime.Today.AddDays(-1)) < 0)
            {
                // Only make dates that are in our range selectable:
                e.Day.IsSelectable = false;
                e.Cell.ForeColor = Color.Gray;

            }


        }