Friday, 20 July 2012

create dynamic control using edmx to insert data


 //Create Dynamic Control
 //.aspx page

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

<%@ Register Src="UI/header.ascx" TagName="header" TagPrefix="uc2" %>
<%@ Register Src="~/UI/sidebar.ascx" TagName="Sidebar" TagPrefix="uc3" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!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>Meeting Deatil</title>
    <link rel="stylesheet" type="text/css" href="CSS/style.css" />
    <%--<script type="text/javascript">
        function change(obj) {
            document.getElementById("TextBox1").value = obj.value;
        }
    </script>--%>
    <script src="js/addmeeting.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager id="ScriptManager1" runat="server"></asp:ScriptManager>
  
 
    <div id="wrapper">
  
        <uc2:header ID="header" runat="server" />
        <div id="splash">
            <div>
                <asp:updatepanel id="updtpnl" runat="server">
                    <contenttemplate>
                        <table>
                            <tr>
                                <td valign="top" width="170px" style="background-color: #C0C0C0;">
                                  <uc3:Sidebar ID="head" runat="server" />
                                </td>
                                <td>
                                    <asp:Panel ID="pan" runat="server">
                                        <table width="100%">
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lbl_type" runat="server" Text="Meeting Type"></asp:Label>
                                                </td>
                                                <td>
                                                    <asp:DropDownList ID="Drp_Type" runat="server" CssClass="drp">
                                                        <asp:ListItem>--Select--</asp:ListItem>
                                                        <asp:ListItem>Executive Committee</asp:ListItem>
                                                        <asp:ListItem>GBB</asp:ListItem>
                                                    </asp:DropDownList>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lbl_subject" runat="server" Text="Subject"></asp:Label>
                                                </td>
                                                <td>
                                                    <asp:TextBox ID="tb_subject" runat="server" CssClass="txtclass"
                                                        TextMode="MultiLine"></asp:TextBox>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lbl_date" runat="server" Text="Meeting Date"></asp:Label>
                                                </td>
                                                <td>
                                                    <asp:TextBox ID="tb_date" runat="server" CssClass="txtclass"></asp:TextBox>
                                                    <asp:CalendarExtender ID="tb_date_CalendarExtender" runat="server" Enabled="True"
                                                        TargetControlID="tb_date" Format="dd/MM/yyyy">
                                                    </asp:CalendarExtender>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    MeetingPlace
                                                </td>
                                                <td>
                                                    <asp:TextBox ID="tb_place" runat="server" CssClass="txtclass"></asp:TextBox>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lbl_agenda" runat="server" Text="Add No. of Agenda"></asp:Label>
                                                </td>
                                                <td>
                                                    <asp:TextBox ID="tb_agenda" runat="server" OnTextChanged="tb_agenda_TextChanged"
                                                        AutoPostBack="True" CssClass="txtclass"></asp:TextBox>
                                                    <asp:FilteredTextBoxExtender ID="tb_agenda_FilteredTextBoxExtender" runat="server"
                                                        Enabled="True" TargetControlID="tb_agenda" FilterType="Numbers">
                                                    </asp:FilteredTextBoxExtender>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td colspan="2">
                                                    <table border="0" cellpadding="0" cellspacing="0">
                                                        <tr>
                                                            <td>
                                                                <asp:Panel ID="panel_agenda" runat="server">
                                                                    <asp:PlaceHolder ID="ph_Account" runat="server"></asp:PlaceHolder>
                                                                </asp:Panel>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lbl_doc" runat="server" Text="Add Document"></asp:Label>
                                                </td>
                                                <td>
                                                    <asp:FileUpload ID="FileUpload1" runat="server" ViewStateMode="Enabled" onchange="change(this)" />
                                                    <%--<asp:TextBox ID="TextBox1" runat="server" Visible="true" Enabled="false"></asp:TextBox>--%>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                </td>
                                                <td>
                                                    <asp:Button ID="btn_add" runat="server" Text="Add" OnClick="btn_add_Click" CssClass="stamp"
                                                        Height="23px" Width="85px" OnClientClick="return Check_Valid1();" />
                                                </td>
                                            </tr>
                                        </table>
                                    </asp:Panel>
                                </td>
                            </tr>
                        </table>
                    </contenttemplate>
                    <triggers>
                        <asp:PostBackTrigger ControlID="btn_add" />
                    </triggers>
                </asp:updatepanel>
            </div>
        </div>
        <div id="page-bottom">
            <div id="page-bottom-content">
            </div>
            <br class="clearfix" />
        </div>
        <div id="footer">
        </div>
    </div>
    </form>
</body>
</html>


//aspx.cs page


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using meeting_newModel;
using System.IO;

public partial class add_meeting : System.Web.UI.Page
{
    int incnt = 0;
    meeting_newEntities2 ent = new meeting_newEntities2();
    string path = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CreatePlhWithData();
            CreateTempDatatable(0);
        }
        //FileUpload1.Attributes.Add("value", FileUpload1.FileName);
        CreatePlhWithData();
    }

    private void CreatePlhWithData()
    {
        try
        {
            ph_Account.Controls.Clear();
            DataTable dt = (DataTable)Session["dtPlh"];
            incnt = GetRowCount(dt);

            Label Doc1 = new Label();
            Doc1.Text = "Number";
            Doc1.Font.Bold = true;

            Label Doc2 = new Label();
            Doc2.Text = "Agenda Detail";
            Doc2.Font.Bold = true;

            Label Doc3 = new Label();
            Doc3.Text = "Action Taken";
            Doc3.Font.Bold = true;

            Label Doc4 = new Label();
            Doc4.Text = "Sacntioned Amount";
            Doc4.Font.Bold = true;

            if (!IsPostBack)
            {
                Doc1.Visible = false;
                Doc2.Visible = false;
                Doc3.Visible = false;
                Doc4.Visible = false;
            }
            else
            {
                Doc1.Visible = true;
                Doc2.Visible = true;
                Doc3.Visible = true;
                Doc4.Visible = true;
            }

            ph_Account.Controls.Add(new LiteralControl("<table width='100px' cellpadding='0' cellspacing='1' border='0'>"));

            ph_Account.Controls.Add(new LiteralControl("<tr>"));

            ph_Account.Controls.Add(new LiteralControl("<td valign='left' style ='font-size :9pt;font-family :Tahoma ;width='200px';'>"));
            ph_Account.Controls.Add(Doc1);
            ph_Account.Controls.Add(new LiteralControl("&nbsp;"));
            ph_Account.Controls.Add(new LiteralControl("</td>"));

            ph_Account.Controls.Add(new LiteralControl("<td valign='left'  style ='font-size :9pt;font-family :Tahoma ;'>"));
            ph_Account.Controls.Add(Doc2);
            ph_Account.Controls.Add(new LiteralControl("&nbsp;"));
            ph_Account.Controls.Add(new LiteralControl("</td>"));

            ph_Account.Controls.Add(new LiteralControl("<td valign='left' style ='font-size :9pt;font-family :Tahoma ;'>"));
            ph_Account.Controls.Add(Doc3);
            ph_Account.Controls.Add(new LiteralControl("&nbsp;"));
            ph_Account.Controls.Add(new LiteralControl("</td>"));

            ph_Account.Controls.Add(new LiteralControl("<td valign='left' style ='font-size :9pt;font-family :Tahoma ;'>"));
            ph_Account.Controls.Add(Doc4);
            ph_Account.Controls.Add(new LiteralControl("&nbsp;"));
            ph_Account.Controls.Add(new LiteralControl("</td>"));

            ph_Account.Controls.Add(new LiteralControl("</tr>"));

            for (int i = 0; i < incnt; i++)
            {
                ph_Account.Controls.Add(new LiteralControl("<tr>"));

                Label lbl_srno = new Label();
                TextBox txt_agenda = new TextBox();
                TextBox txt_action = new TextBox();
                TextBox txt_sanc_amount = new TextBox();


                txt_agenda.TextMode = TextBoxMode.MultiLine;
                txt_sanc_amount.TextMode = TextBoxMode.MultiLine;
                txt_action.TextMode = TextBoxMode.MultiLine;

                lbl_srno.Text = "[" + (i + 1) + "]";
                lbl_srno.ID = "lbl_srno" + i;

                txt_agenda.ID = "txt_agenda" + i;
                txt_agenda.CssClass = "txtclass";

                txt_action.ID = "txt_action" + i;
                txt_action.CssClass = "txtclass";

                txt_sanc_amount.ID = "txt_sanc_amount" + i;
                txt_sanc_amount.CssClass = "txtclass";

                ph_Account.Controls.Add(new LiteralControl("<td valign='left'>"));
                ph_Account.Controls.Add(lbl_srno);
                ph_Account.Controls.Add(new LiteralControl("</td>"));

                ph_Account.Controls.Add(new LiteralControl("<td valign='left'>"));
                ph_Account.Controls.Add(txt_agenda);
                ph_Account.Controls.Add(new LiteralControl("</td>"));

                ph_Account.Controls.Add(new LiteralControl("<td valign='left'>"));
                ph_Account.Controls.Add(txt_action);
                ph_Account.Controls.Add(new LiteralControl("</td>"));

                ph_Account.Controls.Add(new LiteralControl("<td valign='left'>"));
                ph_Account.Controls.Add(txt_sanc_amount);
                ph_Account.Controls.Add(new LiteralControl("</td>"));

                ph_Account.Controls.Add(new LiteralControl("</tr>"));
            }

            ph_Account.Controls.Add(new LiteralControl("</table>"));
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }

    private void CreateTempDatatable(int id)
    {
        try
        {
            DataTable dtPlh = new DataTable();
            DataColumn dc1 = new DataColumn("Number");
            DataColumn dc2 = new DataColumn("Agenda Detail");
            DataColumn dc3 = new DataColumn("Action Taken");
            DataColumn dc4 = new DataColumn("Sacntioned Amount");
            dtPlh.Columns.Add(dc1);
            dtPlh.Columns.Add(dc2);
            dtPlh.Columns.Add(dc3);
            dtPlh.Columns.Add(dc4);
            DataRow drRow;
            for (int intCont = 1; intCont <= id; intCont++)
            {
                drRow = dtPlh.NewRow();
                drRow[0] = "Number" + intCont;
                drRow[1] = "Agenda Detail" + intCont;
                drRow[2] = "Action Taken" + intCont;
                drRow[3] = "Sacntioned Amount" + intCont;
                dtPlh.Rows.Add(drRow);
            }
            Session["dtPlh"] = dtPlh;
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }

    private int GetRowCount(DataTable dt)
    {
        int intRowCount = 0;
        try
        {
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                if (dt.Rows[i].RowState != DataRowState.Deleted)
                {
                    intRowCount = intRowCount + 1;
                }
            }
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
        return intRowCount;
    }

    protected void tb_agenda_TextChanged(object sender, EventArgs e)
    {
        //string sss = string.Empty;
        //sss = TextBox1.Text;
        //path = "Upload" + "/" + sss;
        //FileUpload1.SaveAs(Server.MapPath(path));
        //Session["FileName"] = path;

        FileUpload fu = (FileUpload)this.FindControl("FileUpload1");
        string s = fu.FileName;
        try
        {
            if (tb_agenda.Text.ToString() != "")
            {
                ph_Account.Visible = true;
                CreateTempDatatable(Convert.ToInt32(tb_agenda.Text.ToString()));
                CreatePlhWithData();
            }
            else
            {
                ph_Account.Visible = false;
                CreateTempDatatable(0);
                CreatePlhWithData();
            }
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
        CreatePlhWithData();
    }

    protected void btn_add_Click(object sender, EventArgs e)
    {
        try
        {
            meeting_master mm = new meeting_master();

            //string path = Server.MapPath("~/Offline_uploaded_excel_file");
            //path = path + "\\" + filename;
            //FileUpload1.SaveAs(path);

            //string sss = string.Empty;
            //sss = TextBox1.Text;
            path = "Upload/" + FileUpload1.FileName;
            FileUpload1.SaveAs(Server.MapPath(path));

            mm.meeting_type = Drp_Type.SelectedItem.Text;
            mm.meeting_subject = tb_subject.Text;
            mm.meeting_date = tb_date.Text;
            mm.doc_path = path;
            mm.meeting_place = tb_place.Text;
            ent.AddTomeeting_master(mm);
            ent.SaveChanges();

            int met_id = ent.meeting_master.Where(m => m.meeting_id == ent.meeting_master.Max(w => w.meeting_id)).Select(m => m.meeting_id).Single<int>();
            Add_Attendees(met_id);
            clear();
            Response.Write("<script>alert('insert successfully')</script>");
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
       
        }
    }

    private void clear()
    {
        Drp_Type.ClearSelection();
        tb_subject.Text = "";
        tb_date.Text = "";
        //TextBox1.Text = "";
        tb_place.Text = "";
        tb_agenda.Text = "";
        ph_Account.Controls.Clear();
    }

    private void Add_Attendees(int id)
    {
        DataTable dt = (DataTable)Session["dtPlh"];
        incnt = GetRowCount(dt);

        try
        {
            for (int i = 0; i < incnt; i++)
            {
                meeting_agenda ma = new meeting_agenda();

                TextBox txt_agenda = new TextBox();
                txt_agenda = (TextBox)ph_Account.FindControl("txt_agenda" + i);
                string agenda = txt_agenda.Text;

                TextBox txt_action = new TextBox();
                txt_action = (TextBox)ph_Account.FindControl("txt_action" + i);
                string action = txt_action.Text;

                TextBox txt_sanc_amount = new TextBox();
                txt_sanc_amount = (TextBox)ph_Account.FindControl("txt_sanc_amount" + i);
                string amount = txt_sanc_amount.Text;

                ma.meeting_id = id;
                ma.meeting_agnda = agenda;
                ma.action_taken = action;
                ma.sanction_amount = amount;
                ent.AddTomeeting_agenda(ma);
                ent.SaveChanges();
                //ent.Detach(ma);  //if we define table's object globally
            }

            var t = ent.meeting_agenda.Where(r => r.meeting_id == id).ToList();
            int f = 0;
            int total = 0;

            for (int i = 0; i < t.Count; i++)
            {
                f = Convert.ToInt32(t[i].sanction_amount);
                total = total + f;
            }
            var abc = ent.meeting_master.Where(r => r.meeting_id == id).Single<meeting_master>();
            abc.sanction_amount = total.ToString();
            ent.SaveChanges();
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }
    }
}

No comments:

Post a Comment