Click here to Skip to main content
15,881,709 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,
My module is to, enter values in ui and the values ll be saved in excel.. my fontend is like this,

CodeID: -------------
Content: ------------
Mapping Code: ------------

[submit][save]

after clicking submit button, a grid appears with the values entered and by clicking save, the values are stored in an excel.. everything is working fyn..

now, i want to add an edit link in the grid. if i click edit, the values should be populated in the text box and after editing and by giving save, the values should be edited and saved in excel sheet..

can someone please help me with codes..
below is my source and code behind:
XML
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="UItoExcelDuplicate._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
        .style2
        {
        }
        .style3
        {
            width: 148px;
        }
    </style>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

    <table class="style1">
        <tr>
            <td class="style3">
                <asp:Label ID="Label1" runat="server" Text="CodeID"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtCodeID" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style3">
                <asp:Label ID="Label2" runat="server" Text="Content"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtContent" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style3">
                <asp:Label ID="Label3" runat="server" Text="Mapping Code"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtMappingCode" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style3">
                &nbsp;</td>
            <td>
                <asp:Button ID="btnSubmit" runat="server" Text="Submit" Width="65px"
                    onclick="btnSubmit_Click" />
                <asp:Button ID="btnSave" runat="server" Text="Save" Width="67px"
                    onclick="btnSave_Click" />
            </td>
        </tr>
        <tr>
            <td class="style2" colspan="2">

           <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
    ForeColor="#333333" Width="395px" AllowPaging ="True">
                <FooterStyle BackColor="#507CD1" Font-Bold ="True" ForeColor="White" />
    <RowStyle BackColor="#EFF3FB" />
    <EditRowStyle BackColor ="#2461BF" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="White" />


    <columns>
    <asp:BoundField HeaderText="CodeID" DataField="CodeID" />
    <asp:BoundField HeaderText="Content" DataField="Content" />
    <asp:BoundField HeaderText="Mapping Code" DataField="Mapping Code" />
    <asp:CommandField ShowEditButton="true" />
    </columns>
                </asp:GridView>
                <br />
                <asp:Label ID="lblMessage" runat="server"></asp:Label>
            </td>
        </tr>
    </table>

</asp:Content>

Code behind:
C#
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 System.Data.OleDb;

namespace UItoExcelDuplicate
{
    public partial class _Default : System.Web.UI.Page
    {
        private DataTable _dt;
        public DataTable dt
        {
            get
            {
                return _dt;
            }
            set
            {
                _dt = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("CodeID", typeof(string));
                dt.Columns.Add("Content", typeof(string));
                dt.Columns.Add("Mapping Code", typeof(string));
                Session["dt"] = dt;
            }
            _dt = (DataTable) Session ["dt"];
            
        }
        private void BindGrid()
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            string con = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = D:/test.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES'";
            OleDbConnection obj = new OleDbConnection(con);
            obj.Open();
            OleDbCommand cmd = new OleDbCommand("Insert into [Sheet1$]([CodeID],[Content],[Mapping Code]) values('" + txtCodeID.Text + "','" + txtContent.Text + "','" + txtMappingCode.Text + "')", obj);
            cmd.ExecuteNonQuery();
            lblMessage.Text = "Inserted";
            obj.Close();
            txtCodeID.Text = txtContent.Text = txtMappingCode.Text = string.Empty;
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            DataTable dt = (DataTable)Session["dt"];
            DataRow dr = dt.NewRow();
            dr["CodeID"] = txtCodeID.Text;
            dr["Content"] = txtContent.Text;
            dr["Mapping Code"] = txtMappingCode.Text;

            dt.Rows.Add(dr);
            GridView1.DataSource = dt;
            GridView1.DataBind();
            BindGrid();
        }

        
    }
}
Posted
Updated 17-Sep-12 22:33pm
v2
Comments
[no name] 18-Sep-12 4:39am    
next time don't use shorts cuts to explain your questions..
Ashraff Ali Wahab 18-Sep-12 11:14am    
What I understand is your grid need to be editable.Am I correct?
Anusha Sridhar 20-Sep-12 0:16am    
yes. and the values should be edited in excel too.

 
Share this answer
 
v2
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900