Sunday, 5 June 2011

Navigating between Records without using any built-in Data Control in ASP.Net


Default.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td style="width: 127px">
                    <asp:Label ID="Label1" runat="server" Text="Employee ID:"></asp:Label></td>
                <td style="width: 354px">
                    <asp:Label ID="LblEmployeeID" runat="server" Text="Label"></asp:Label></td>
            </tr>
            <tr>
                <td style="width: 127px">
                    <asp:Label ID="Label3" runat="server" Text="Employee Name:"></asp:Label></td>
                <td style="width: 354px">
                    <asp:Label ID="LblEmployeeName" runat="server" Text="Label"></asp:Label></td>
            </tr>
            <tr>
                <td style="width: 127px">
                    <asp:Label ID="Label5" runat="server" Text="Date of Join:"></asp:Label></td>
                <td style="width: 354px">
                    <asp:Label ID="LblDateOfJoin" runat="server" Text="Label"></asp:Label></td>
            </tr>
            <tr>
                <td style="width: 127px">
                    <asp:Label ID="Label7" runat="server" Text="Salary:"></asp:Label></td>
                <td style="width: 354px">
                    <asp:Label ID="LblSalary" runat="server" Text="Label"></asp:Label></td>
            </tr>
            <tr>
                <td colspan="2">
                    <asp:Button ID="BtnFirst" runat="server" Text="|<" OnClick="BtnFirst_Click" Width="20px" />
                    <asp:Button ID="BtnPrior" runat="server" Text="<" OnClick="BtnPrior_Click" Width="20px" />
                    <asp:TextBox ID="TxtCurrentRecord" runat="server" Width="17px" AutoPostBack="True" OnTextChanged="TxtCurrentRecord_TextChanged"></asp:TextBox>
                    <asp:Label ID="LblTotalRecords" runat="server"></asp:Label>
                    <asp:Button ID="BtnNext" runat="server" Text=">" OnClick="BtnNext_Click" Width="20px" />
                    <asp:Button ID="BtnLast" runat="server" Text=">|" OnClick="BtnLast_Click" Width="20px" /></td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

Default.aspx.cs

static DataTable dt;
    static int currec, totrec;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            dt = GetData();
        }
        totrec = dt.Rows.Count;
        if (!Page.IsPostBack)
            ShowData(0);
        ScrollControl();
    }

    protected void BtnFirst_Click(object sender, EventArgs e)
    {
        currec = 0;
        ShowData(currec);
        ScrollControl();
    }

    protected void BtnPrior_Click(object sender, EventArgs e)
    {
        currec -= 1;
        ShowData(currec);
        ScrollControl();
    }

    protected void BtnNext_Click(object sender, EventArgs e)
    {
        currec += 1;
        ShowData(currec);
        ScrollControl();
    }

    protected void BtnLast_Click(object sender, EventArgs e)
    {
        currec = totrec - 1;
        ShowData(currec);
        ScrollControl();
    }

    protected void TxtCurrentRecord_TextChanged(object sender, EventArgs e)
    {
        currec = Convert.ToInt32(TxtCurrentRecord.Text) - 1;
        if (currec + 1 > totrec)
        {
            currec = totrec - 1;
        }
        else if (currec < 0)
        {
            currec = 0;
        }
        ShowData(currec);
        ScrollControl();
    }

    public void ShowData(int cr)
    {
        DataRow dr = dt.Rows[cr];
        LblEmployeeID.Text = Convert.ToString(dr["empid"]);
        LblEmployeeName.Text = Convert.ToString(dr["empname"]);
        LblDateOfJoin.Text = Convert.ToString(dr["dateofjoin"]);
        LblSalary.Text = Convert.ToString(dr["salary"]);
        TxtCurrentRecord.Text = (currec + 1).ToString();
        LblTotalRecords.Text = " of " + totrec.ToString();
    }

    public DataTable GetData()
    {
        DataTable DtEmp = new DataTable();
        DataColumn dc = new DataColumn("empid", typeof(string));
        DtEmp.Columns.Add(dc);
        dc = new DataColumn("empname", typeof(string));
        DtEmp.Columns.Add(dc);
        dc = new DataColumn("dateofjoin", typeof(int));
        DtEmp.Columns.Add(dc);
        dc = new DataColumn("salary", typeof(DateTime));
        DtEmp.Columns.Add(dc);
        DtEmp.Rows.Add("E001", "Rahul Mehera", 12000, new DateTime(2010, 1, 1));
        DtEmp.Rows.Add("E002", "Bhuban Agarwal", 16000, new DateTime(2009, 10, 1));
        DtEmp.Rows.Add("E003", "Ranjjit Roy", 18500, new DateTime(2009, 7, 5));
        DtEmp.Rows.Add("E004", "Mohit Garg", 32000, new DateTime(2003, 12, 1));
        DtEmp.Rows.Add("E005", "Ipsita Patel", 22000, new DateTime(2002, 9, 10));
        DtEmp.Rows.Add("E006", "Anisha Basu", 20000, new DateTime(2007, 11, 1));
        DtEmp.Rows.Add("E007", "Bibek Shetty", 35000, new DateTime(2010, 7, 3));
        DtEmp.Rows.Add("E008", "Namrata Roy", 45000, new DateTime(2010, 12, 3));
        return DtEmp;
    }

    void ScrollControl()
    {
        if (totrec == 0)
        {
            BtnFirst.Enabled = false;
            BtnPrior.Enabled = false;
            BtnNext.Enabled = false;
            BtnLast.Enabled = false;
        }
        else if (currec >= totrec - 1)
        {
            BtnFirst.Enabled = true;
            BtnPrior.Enabled = true;
            BtnNext.Enabled = false;
            BtnLast.Enabled = false;
        }
        else if (currec <= 0)
        {
            BtnFirst.Enabled = false;
            BtnPrior.Enabled = false;
            BtnNext.Enabled = true;
            BtnLast.Enabled = true;
        }
        else
        {
            BtnFirst.Enabled = true;
            BtnPrior.Enabled = true;
            BtnNext.Enabled = true;
            BtnLast.Enabled = true;
        }
    }

No comments:

Post a Comment