Friday, March 25, 2011

different B/w Virtual Method and Abstract Method.


- If an abstract class's method is marked as abstract and any class is derived from the abstract class, then the derive class must implement(override) the base class abstract method.
- If a class's method is marked as virtual, then it leaves an option for the derive class to override it



main difference is that, when we us virtual class it means all its methods are required to be abstract. but if we use abstract class then some of its methods will be abstract but not all.
virtual function or abstract function are function without definition.




An abstract method is used in a abstract class and a virtual method is used in a normal class.
Both are used to override the methods in a derived class.
A virtual method is declared with keyword virtual and a abstract method is declared with keyword abstract.
A virtual method has some implementation and an abstract method do not have any implementation body.

Example:

Virtual Method:-

Class A
{
Virtual Void Display()
{
Console.WriteLine("Display Me from class A");
}
}

class B : A
{
override void Display()
{
Console.WriteLine("Display me from class B");
}
}
class MainClass
{
Static void Main()
{
A objA= New B();
objA.Display();
}
}


The out put here will be "Display me from class B"

Abstract Method:

abstract class A
{
abstract void Display()----As class is declared abstract so method may or may not have declared as abstarct as this is declared as abstract so it should not have implemenation here.
}

class B : A
{
public override void Display()
{
Console.WriteLine("Display me from class B");
}
}

class MainClass
{
static void Main()
{
A objA = new B();

objA.Display();
}
}

The out put here will also be "Display me from class B"




When a class contains abstract method, the class must be declared as abstract
Abstract method has no implementation
Deriving class must provide implementation
Abstract methods cannot be overridden

A class can have virtual method
Virtual method has implementation
You can override virtual methods








Find Control Inside GridView in Javascript?


function SelectAll(id) {
            var grd = document.getElementById("<%= grdView1.ClientID %>");
            var cell;
            if (grd.rows.length > 0) {
                for (i = 1; i < grd.rows.length; i++) {

                    cell = grd.rows[i].cells[0];
                    for (j = 0; j < cell.childNodes.length; j++) {

                        if (cell.childNodes[j].type == "checkbox") {

                            cell.childNodes[j].checked = document.getElementById(id).checked;
                        }
                    }
                }
            }
        }

Read Webconfig in JavaScript.


Var iVoidInvoiceCheck = '<%=System.Configuration.ConfigurationManager.AppSettings["VoidInvoiceCheck"].ToString()%>';

Bind Drop Down List Using JSON




<%@ 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>Untitled Page</title>

    <script src="JS/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script language="javascript" >

        $(function() {
            $(window).load(function() {

                BindDDL();

            });
        });
        function AddItems(ddlName, textField, ValueField) {
            var opt = document.createElement("option");
            opt.text = textField;
            opt.value = ValueField;
            ddlName.options.add(opt);
        }
        function BindDDL() {
            var ddlList = document.getElementById('<%=ddlList.ClientID %>');
            $.ajax(
                {
                    type: "POST",
                    url: "Default.aspx/BindData",
                    data: "{}",
                    contentType: "application/json",
                    dataType: "json",
                    success: function(data) {

                        for (var i = 0; i < data.d.length; i++) {

                            AddItems(ddlList, data.d[i].InvoiceNumber, data.d[i].invoiceid);
                        }


                    }
                });
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlList" runat="server">
        </asp:DropDownList>
    </div>
    </form>
</body>
</html>
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{


    protected void Page_Load(object sender, EventArgs e)
    {

        BindData();
    }

    [System.Web.Services.WebMethod]
    public static MyClass[] BindData()
    {
        string ConnectionString = ConfigurationManager.ConnectionStrings["appConnectionString"].ToString();
        SqlConnection con = new SqlConnection(ConnectionString);
        SqlCommand cmd = new SqlCommand();
        DataTable dt = new DataTable();
        cmd.CommandText = "     Select invoiceid,InvoiceNumber from Payable_InvoiceMaster  ";
        cmd.CommandType = CommandType.Text;
        cmd.Connection = con;
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        da.Fill(dt);
        System.Collections.Generic.List<MyClass> mListMyClass = new System.Collections.Generic.List<MyClass>(); //Create Generic List
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            MyClass mClass = new MyClass();
            mClass.invoiceid = Convert.ToInt32(dt.Rows[i][0]);
            mClass.InvoiceNumber = dt.Rows[i][0].ToString();

            mListMyClass.Add(mClass);
        }

        return (mListMyClass.ToArray());

    }

    public class MyClass    //Create a Class
    {
        public int invoiceid;
        public string InvoiceNumber;

    }

}
 here download Jquey File....
http://api.jquery.com/category/version/1.4.2/


Tuesday, March 15, 2011

Date Validation in JavaScript


var txtFromDate = document.getElementById('<%= txtDueFromDate.ClientID %>');
                var txtToDate = document.getElementById('<%= txtDueToDate.ClientID %>');
                if (txtFromDate.value.trim() == '') {
                    divDueDateSearch.innerHTML = '*Enter From Date!';
                    divDueDateSearch.style.display = 'block';
                    txtFromDate.focus();
                    return false;
                }
                if (txtFromDate.value.trim() != '' && txtFromDate.value.trim() != '__/__/__') {
                    if (!isDate(txtFromDate.value.trim())) {
                        divDueDateSearch.innerHTML = '*Enter Valid Date!';
                        divDueDateSearch.style.display = 'block';
                        txtFromDate.focus();
                        return false;
                    }
                }
                if (txtToDate.value.trim() == '') {
                    divDueDateSearch.innerHTML = '*Enter To Date!';
                    divDueDateSearch.style.display = 'block';
                    txtToDate.focus();
                    return false;
                }
                if (txtToDate.value.trim() != '' && txtToDate.value.trim() != '__/__/__') {
                    if (!isDate(txtToDate.value.trim())) {
                        divDueDateSearch.innerHTML = '*Enter Valid Date!';
                        divDueDateSearch.style.display = 'block';
                        txtToDate.focus();
                        return false;
                    }
                }
                var Date1 = new Date(txtFromDate.value.trim());
                var Date2 = new Date(txtToDate.value.trim());
                if (Date2 < Date1) {
                    divDueDateSearch.innerHTML = '*To Date should be greater than From Date!';
                    divDueDateSearch.style.display = 'block';
                    txtToDate.focus();
                    return false;
                }
                else if (Date2 >= Date1) {
                     return true;
                }



<asp:Panel ID="pnlCustomDate" runat="server" Enabled="false">
                                                                                                                    <span>From Date: </span>
                                                                                                                    <asp:TextBox ID="txtFromDate" runat="server" Width="120px"></asp:TextBox>
                                                                                                                    <asp:ImageButton runat="Server" ID="imgFromDate" ImageUrl="~/images/Calendar.gif"
                                                                                                                        ImageAlign="AbsMiddle" AlternateText="cal" />
                                                                                                                    <ajaxToolkit:CalendarExtender ID="ceSearch" runat="server" TargetControlID="txtFromDate"
                                                                                                                        CssClass="MyCalendar" Format="MM/dd/yy" PopupPosition="TopLeft" PopupButtonID="imgFromDate" />
                                                                                                                    <ajaxToolkit:MaskedEditExtender ID="meeSearch" runat="server" Mask="99/99/99" CultureName="en-US"
                                                                                                                        MaskType="Date" TargetControlID="txtFromDate" PromptCharacter="_">
                                                                                                                    </ajaxToolkit:MaskedEditExtender>
                                                                                                                    <span>To Date: </span>
                                                                                                                    <asp:TextBox ID="txtToDate" runat="server" Width="120px"></asp:TextBox>
                                                                                                                    <asp:ImageButton runat="Server" ID="imgToDate" ImageUrl="~/images/Calendar.gif" ImageAlign="AbsMiddle"
                                                                                                                        AlternateText="cal" />
                                                                                                                    <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtToDate"
                                                                                                                        CssClass="MyCalendar" Format="MM/dd/yy" PopupPosition="TopLeft" PopupButtonID="imgToDate" />
                                                                                                                    <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender1" runat="server" Mask="99/99/99"
                                                                                                                        CultureName="en-US" MaskType="Date" TargetControlID="txtToDate" PromptCharacter="_">
                                                                                                                    </ajaxToolkit:MaskedEditExtender>
                                                                                                                </asp:Panel>