Monday 25 July 2011

How to print page content using javascript?

<html>
<head id="Head1" runat="server">
<title>Print using Javascript</title>
<script type="text/javascript">
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
function CallPrint(strid)

{
       var prtContent = document.getElementById(strid);
      var WinPrint = window.open('', '', 'left=0,top=0,width=300,height=300,toolbar=0,scrollbars=0,status=0');
      //prtContent.innerHTML = strOldOne;
}
</
script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="divPrint">
           <asp:Label ID="Label1" runat="server" Text="UserName:"></asp:Label>
           <asp:TextBox ID="Textbox1" runat="server"></asp:TextBox><br />
           <asp:Label ID="Label2" runat="server" Text="Password: "></asp:Label>
           <asp:TextBox ID="Textbox2" runat="server"></asp:TextBox></div>
           <asp:Button ID="Button2" runat="server" Text="Print" OnClientClick="CallPrint('divPrint')" onclick="Button2_Click" />
</div>
</form>
</body>
</html>

Wednesday 6 July 2011

How to check /Un Check Gridview checkbox column based on header check box?

Client Side

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Grid View Checkbox column Example</title>   
    <script type="text/javascript">
        function SelectAll(id)
        {
            //get name of gridview control
            var grid_name = document.getElementById("<%= GridView1.ClientID %>");
           
            //specify checkbox column index in this cell variable
            var cell;

            if (grid_name.rows.length > 0)
            {
                //Get Check box column index and check/un check grid view check boxes
                for (i = 1; i < grid_name.rows.length; i++)
                {
                    //Get first column values
                    cell = grid_name.rows[i].cells[0];
                   
                    //Get childNodes in the cell checked/unchecked
                    for (j=0; j<cell.childNodes.length; j++)
                    {                           
                        if (cell.childNodes[j].type =="checkbox")
                        {                      
                            cell.childNodes[j].checked = document.getElementById(id).checked;
                        }
                    }
                }
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div> 
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="SelectAll" runat="server" Text="Select All" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="SelectAll" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="empname" HeaderText="Employee Name" />
                <asp:BoundField DataField="sal" HeaderText="Salary" />
            </Columns>
        </asp:GridView>   
    </div>
    </form>
</body>
</html>


Server side

using System.Data;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("eno");
            dt.Columns.Add("empname");
            dt.Columns.Add("sal");

            DataRow dr = dt.NewRow();
            dr[0] = "1";
            dr[1] = "Ravindran";
            dr[2] = "15000";
            dt.Rows.Add(dr);

            DataRow dr1 = dt.NewRow();
            dr1[0] = "2";
            dr1[1] = "Ramesh";
            dr1[2] = "7800";
            dt.Rows.Add(dr1);

            DataRow dr2 = dt.NewRow();
            dr2[0] = "3";
            dr2[1] = "Ganesh";
            dr2[2] = "9000";
            dt.Rows.Add(dr2);

            DataRow dr3 = dt.NewRow();
            dr3[0] = "4";
            dr3[1] = "Arun ";
            dr3[2] = "45000";
            dt.Rows.Add(dr3);

            DataRow dr4 = dt.NewRow();
            dr4[0] = "5";
            dr4[1] = "Allen";
            dr4[2] = "25000";
            dt.Rows.Add(dr4);

            DataRow dr5 = dt.NewRow();
            dr5[0] = "6";
            dr5[1] = "Michal";
            dr5[2] = "23000";
            dt.Rows.Add(dr5);


            //Binding datasource to Grid View control
            GridView1.DataSource = dt;
           GridView1.DataBind();
        }
    }
  
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //Below code is used to check/uncheck grid view check boxes
        if (e.Row.RowType == DataControlRowType.Header)
        {
            //Find the checkbox control in header and add an attribute
            ((CheckBox)e.Row.FindControl("SelectAll")).Attributes.Add("onclick", "javascript:SelectAll('" + ((CheckBox)e.Row.FindControl("SelectAll")).ClientID + "')");
        }
    }
}

Output Shows like this


How to prevent copy contents from webpage using Javascript?

If you want to prevent copy whole content of web page then use on dragstart as false and on select start as false inside of body tag like below.

<body ondragstart="return false" onselectstart="return false">

// Your content placed here

</body>

If you want prevent cut, copy, paste text in your text box then try like this way

<asp:TextBox ID="TextBox1" runat="server" oncopy="return false" onpaste="return false"
oncut="return false"></asp:TextBox>