Hi simflex,
I have created sample code which full-fill your requirement.SO please refer the below code.
HTML
<div>
<form id="form2" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:MultiView ID="myMultiView" runat="server">
<asp:View ID="vwPersonalInfo" runat="server">
<table border="1" style="width: 60%; text-align: center;">
<tr>
<td style="vertical-align: text-top;">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="Gridview1" Style="table-layout: fixed;" runat="server" ShowFooter="true"
AutoGenerateColumns="false" OnRowDeleting="Gridview1_RowDeleting">
<Columns>
<asp:BoundField DataField="RowNumber" Visible="false" HeaderText="Row Number" />
<asp:TemplateField HeaderText=" Registration #:">
<HeaderStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:TextBox ID="txtboatregNum" runat="server" Style="width: 83px;" class="form-control"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Value As of Jan This Year">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:TextBox ID="txttaxpayerret" runat="server" Style="width: 88px;" class="form-control txttaxpayerret"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<HeaderStyle Width="70" />
<ItemStyle Width="70" />
<ItemTemplate>
<asp:Button ID="BtnAdd" runat="server" Text="Add" OnClick="BtnAdd_Click" CssClass="grvDelButton btnclass" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True">
<ControlStyle CssClass="grvDelButton" />
</asp:CommandField>
</Columns>
</asp:GridView>
<table border="1" style="width: 100%; text-align: center">
<tr>
<td style="width: 24.2%;">
TOTAL<span style="margin-left: 200px; color: #000000; font-weight: bold;">></span>
</td>
<td style="width: 23%;">
$<asp:Label ID="lblTotal" runat="server"></asp:Label>
<asp:HiddenField ID="hfvalue" runat="server" />
</td>
<td style="width: 62.8%;">
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
<br />
<div style="float: center">
<asp:Button ID="btnback" Text="Back" CssClass="grvDelButton btnclass" runat="server" />
<asp:Button ID="btnNext" Text="Next" OnClick="OnClickNext" CssClass="grvDelButton btnclass"
class="btn btn-primary" runat="server" />
</div>
</asp:View>
<asp:View ID="view2" runat="server">
<table style="width: 100%; border: 1px solid black;">
<tr>
<td style="width: 33.3%; border-collapse: collapse; white-space: nowrap;">
<asp:Repeater ID="Repeater2" runat="server">
<HeaderTemplate>
<table id="repeaterTable" style="border: 1px solid black;">
</HeaderTemplate>
<ItemTemplate>
<table style="width: 100%; border: 1px solid black;">
<tr>
<td style="width: 33.3%; border-collapse: collapse; white-space: nowrap;">
Airport where aircraft primary home based city:
<asp:TextBox ID="aircraftCity" Style="width: 270px;" runat="server"></asp:TextBox>
</td>
<td style="text-align: center;">
</td>
<td style="width: 33.3%; border-collapse: collapse; white-space: nowrap;">
County:<asp:TextBox ID="aircraftcnty" Style="width: 270px;" runat="server"></asp:TextBox>
</td>
<td style="text-align: center;">
</td>
<td style="width: 33.3%; border-collapse: collapse; white-space: nowrap;">
<div class="input select">
State:
<asp:DropDownList ID="aircraftstate" runat="server" Style="width: 150px;" AppendDataBoundItems="True">
<asp:ListItem Value="" Selected="True"></asp:ListItem>
</asp:DropDownList>
</div>
</td>
<td style="text-align: center;">
</td>
</tr>
</table>
<table style="width: 100%; border: 1px solid black;">
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Registration "N" #:<asp:TextBox ID="aRegNo" Text='<%#Eval("aRegNo")%>' Style="width: 270px;
margin-left: 195px;" runat="server"></asp:TextBox>
</td>
<td style="text-align: center; border: 1px solid black;">
AVIONICS AND EXTRA EQUIPMENT
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
MFG. Name: (make):<asp:TextBox ID="aMake" Style="width: 270px; margin-left: 175px;"
runat="server"></asp:TextBox>
</td>
<td style="width: 50%; text-align: center; border: 1px solid black;" rowspan="10">
<asp:TextBox ID="txtavionics" runat="server" TextMode="MultiLine" Style="width: 100%;
height: 700px;" class="form-control"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Model Name OR #::<asp:TextBox ID="aModelNo" Style="width: 270px; margin-left: 184px;"
runat="server"></asp:TextBox>
</td>
<td style="width: 50%; text-align: center; border: 0px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Year Built:<asp:TextBox ID="aYRBuilt" Style="width: 270px; margin-left: 252px;" runat="server"></asp:TextBox>
</td>
<td style="width: 50%; text-align: center; border: 0px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Serial Number:<asp:TextBox ID="aSN" Style="width: 270px; margin-left: 219px;" runat="server"></asp:TextBox>
</td>
<td style="width: 50%; text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Date Purchased:<asp:TextBox ID="txtdatePurchased" Style="width: 270px; margin-left: 205px;"
runat="server"></asp:TextBox>
</td>
<td style="width: 50%; text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black;">
Purchased:<asp:RadioButtonList ID="rblPurchaseType" runat="server" ValidationGroup="stype"
RepeatDirection="Horizontal" TextAlign="Right" Style="display: inline;">
<asp:ListItem Text="New" />
<asp:ListItem Text="Used" />
</asp:RadioButtonList>
<br />
<asp:RequiredFieldValidator Style="color: #ff0000;" ID="RequiredFieldValidator1"
ControlToValidate="rblPurchaseType" ErrorMessage="Please choose New or Used"
ValidationGroup="stype" runat="server" />
</td>
<td style="text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Cost:<asp:TextBox ID="aircraftCost" Style="width: 270px; margin-left: 287px;" runat="server"></asp:TextBox>
</td>
<td style="text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Hours Between Overhauls(TBO):<asp:TextBox ID="hrsBtwnTBO" Style="width: 270px; margin-left: 90px;"
runat="server"></asp:TextBox>
</td>
<td style="text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Hours Since Last OVerhaul:<asp:TextBox ID="hrsOverhaul" Style="width: 270px; margin-left: 127px;"
runat="server"></asp:TextBox>
</td>
<td style="text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Last Overhaul:<asp:RadioButtonList ID="rbllastOverHaul" ValidationGroup="stype" runat="server"
RepeatDirection="Horizontal" TextAlign="Right" Style="display: inline;">
<asp:ListItem Text="Major" />
<asp:ListItem Text="Top" />
</asp:RadioButtonList>
<br />
<asp:RequiredFieldValidator Style="color: #ff0000;" ID="RequiredFieldValidator2"
ControlToValidate="rbllastOverHaul" ErrorMessage="Please choose Major or Top"
ValidationGroup="stype" runat="server" />
</td>
<td style="text-align: center; border: 1px solid black;">
</td>
</tr>
<tr>
<td style="width: 50%; border-collapse: collapse; border: 1px solid black; white-space: nowrap;">
Total Hours On Airframe As of Jan. 1:<asp:TextBox ID="TotOnAirFrm" Style="width: 270px;
margin-left: 58px;" runat="server"></asp:TextBox>
</td>
<td style="border: 1px solid black;">
NOTE: Please submit a copy of your log book to substantiate T.B.O. and<br />
airframe hours.
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="BtnAdd2" Style="width: 150px;" runat="server" Text="Next Vehicle"
OnClick="ButtonAdd2_Click" CssClass="btnclass" />
<asp:Button ID="btnDelete" Style="width: 120px;" runat="server" Text="Remove a row"
OnClick="btnDelete_Click" CssClass="btnclass" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</asp:View>
</asp:MultiView>
</form>
<div>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
function pageLoad() {
totalcalculate();
$('[id*=txttaxpayerret]').keyup(function () {
totalcalculate();
});
}
function totalcalculate() {
var total = 0;
for (var i = 0; i < $('.txttaxpayerret').length; i++) {
var temp = $('.txttaxpayerret')[i].value;
temp != "" ? temp : temp = 0;
total = parseFloat(temp) + parseFloat(total);
$('[id*=lblTotal]').html(total);
$('[id*=hfvalue]').val(total);
}
}
</script>
<style type="text/css">
body
{
font-family: Arial;
font-size: 10pt;
}
table
{
border: 1px solid #ccc;
}
table th
{
background-color: #F7F7F7;
color: #333;
font-weight: bold;
}
table th, table td
{
padding: 5px;
border-color: #ccc;
}
.btnclass
{
color: #FFF;
background-color: #204D74;
border-color: #122B40;
display: inline-block;
padding: 6px 12px;
margin-bottom: 0px;
font-size: 14px;
font-weight: 400;
line-height: 1.42857;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
-moz-user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
</style>
</div>
</div>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.SetInitialRow();
}
}
private void SetInitialRow()
{
myMultiView.ActiveViewIndex = 0;
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dr = dt.NewRow();
dr["ID"] = 1;
dr["Column1"] = string.Empty;
dr["Column2"] = string.Empty;
dt.Rows.Add(dr);
ViewState["CurrentTable"] = dt;
Gridview1.DataSource = dt;
Gridview1.DataBind();
}
private void SetInitialRow2(string registerNumber)
{
DataTable dt = new DataTable();
DataRow dr = null;
//Create DataTable columns
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("aRegNo", typeof(string)));
dt.Columns.Add(new DataColumn("aMake", typeof(string)));
dt.Columns.Add(new DataColumn("txtavionics", typeof(string)));
dt.Columns.Add(new DataColumn("aModelNo", typeof(string)));
dt.Columns.Add(new DataColumn("aYRBuilt", typeof(string)));
dt.Columns.Add(new DataColumn("aSN", typeof(string)));
dt.Columns.Add(new DataColumn("txtdatePurchased", typeof(string)));
dt.Columns.Add(new DataColumn("rblPurchaseType", typeof(string)));
dt.Columns.Add(new DataColumn("aircraftCost", typeof(string)));
dt.Columns.Add(new DataColumn("hrsBtwnTBO", typeof(string)));
dt.Columns.Add(new DataColumn("hrsOverhaul", typeof(string)));
dt.Columns.Add(new DataColumn("TotOnAirFrm", typeof(string)));
//Create Row for each columns
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["aRegNo"] = registerNumber;
dr["aMake"] = string.Empty;
dr["txtavionics"] = string.Empty;
dr["aModelNo"] = string.Empty;
dr["aYRBuilt"] = string.Empty;
dr["aSN"] = string.Empty;
dr["txtdatePurchased"] = string.Empty;
dr["rblPurchaseType"] = string.Empty;
dr["aircraftCost"] = string.Empty;
dr["hrsBtwnTBO"] = string.Empty;
dr["hrsOverhaul"] = string.Empty;
dr["TotOnAirFrm"] = string.Empty;
dt.Rows.Add(dr);
//Store the DataTable in ViewState for future reference
ViewState["CurrentTable1"] = dt;
//Bind the Repeater with the DataTable
Repeater2.DataSource = dt;
Repeater2.DataBind();
}
private void AddNewRow2(string registerNumber)
{
int rowIndex = 0;
if (ViewState["CurrentTable1"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable1"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
//extract the TextBox values
TextBox tbTextBox2 = (TextBox)Repeater2.Items[rowIndex].FindControl("aRegNo");
//Create new row in DataTable and set its values
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i + 1;
dtCurrentTable.Rows[i - 1]["aRegNo"] = tbTextBox2.Text;
rowIndex++;
}
//add the new row to the current DataTable
dtCurrentTable.Rows.Add(drCurrentRow);
//store the current DataTable in ViewState
ViewState["CurrentTable1"] = dtCurrentTable;
//rebind the Repeater with the updated DataTable
Repeater2.DataSource = dtCurrentTable;
Repeater2.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
//Set Previous Data on Postbacks
SetPreviousData2(registerNumber);
}
private void SetPreviousData2(string registerNumber)
{
int rowIndex = 0;
if (ViewState["CurrentTable1"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable1"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox tbTextBox2 = (TextBox)Repeater2.Items[rowIndex].FindControl("aRegNo");
tbTextBox2.Text = dt.Rows[i]["aRegNo"].ToString();
if (dt.Rows.Count - 1 == i)
{
tbTextBox2.Text = registerNumber;
}
rowIndex++;
}
}
}
}
protected void ButtonAdd2_Click(object sender, EventArgs e)
{
}
private void AddNewRowToGrid()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("txtboatregNum");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("txttaxpayerret");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["ID"] = i + 1;
dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
Gridview1.DataSource = dtCurrentTable;
Gridview1.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
SetPreviousData();
}
private void SetPreviousData()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("txtboatregNum");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("txttaxpayerret");
box1.Text = dt.Rows[i]["Column1"].ToString();
box2.Text = dt.Rows[i]["Column2"].ToString();
rowIndex++;
}
}
}
}
protected void BtnAdd_Click(object sender, EventArgs e)
{
AddNewRowToGrid();
}
protected void btnDelete_Click(object sender, EventArgs e)
{
}
protected void Gridview1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int rowIndex = 0;
int rowID = e.RowIndex;
lblTotal.Text = "0";
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= Gridview1.Rows.Count; i++)
{
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("txtboatregNum");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("txttaxpayerret");
dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
rowIndex++;
}
if (e.RowIndex < dtCurrentTable.Rows.Count)
{
dtCurrentTable.Rows.Remove(dtCurrentTable.Rows[rowID]);
}
}
ViewState["CurrentTable"] = dtCurrentTable;
Gridview1.DataSource = dtCurrentTable;
Gridview1.DataBind();
}
SetPreviousData();
}
protected void OnClickNext(object sender, EventArgs e)
{
myMultiView.ActiveViewIndex = 1;
PopulateRecord();
}
private void PopulateRecord()
{
foreach (GridViewRow row in Gridview1.Rows)
{
string registerNumber = (row.FindControl("txtboatregNum") as TextBox).Text;
if (row.RowIndex == 0)
{
this.SetInitialRow2(registerNumber);
}
else
{
AddNewRow2(registerNumber);
}
foreach (RepeaterItem Item in Repeater2.Items)
{
(Item.FindControl("BtnAdd2") as Button).Visible = Repeater2.Items.Count > 1;
(Item.FindControl("btnDelete") as Button).Visible = Repeater2.Items.Count > 1;
}
}
}
Vb.Net
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
Me.SetInitialRow()
End If
End Sub
Private Sub SetInitialRow()
myMultiView.ActiveViewIndex = 0
Dim dt As New DataTable()
Dim dr As DataRow = Nothing
dt.Columns.Add(New DataColumn("ID", GetType(String)))
dt.Columns.Add(New DataColumn("Column1", GetType(String)))
dt.Columns.Add(New DataColumn("Column2", GetType(String)))
dr = dt.NewRow()
dr("ID") = 1
dr("Column1") = String.Empty
dr("Column2") = String.Empty
dt.Rows.Add(dr)
ViewState("CurrentTable") = dt
Gridview1.DataSource = dt
Gridview1.DataBind()
End Sub
Private Sub SetInitialRow2(registerNumber As String)
Dim dt As New DataTable()
Dim dr As DataRow = Nothing
'Create DataTable columns
dt.Columns.Add(New DataColumn("RowNumber", GetType(String)))
dt.Columns.Add(New DataColumn("aRegNo", GetType(String)))
dt.Columns.Add(New DataColumn("aMake", GetType(String)))
dt.Columns.Add(New DataColumn("txtavionics", GetType(String)))
dt.Columns.Add(New DataColumn("aModelNo", GetType(String)))
dt.Columns.Add(New DataColumn("aYRBuilt", GetType(String)))
dt.Columns.Add(New DataColumn("aSN", GetType(String)))
dt.Columns.Add(New DataColumn("txtdatePurchased", GetType(String)))
dt.Columns.Add(New DataColumn("rblPurchaseType", GetType(String)))
dt.Columns.Add(New DataColumn("aircraftCost", GetType(String)))
dt.Columns.Add(New DataColumn("hrsBtwnTBO", GetType(String)))
dt.Columns.Add(New DataColumn("hrsOverhaul", GetType(String)))
dt.Columns.Add(New DataColumn("TotOnAirFrm", GetType(String)))
'Create Row for each columns
dr = dt.NewRow()
dr("RowNumber") = 1
dr("aRegNo") = registerNumber
dr("aMake") = String.Empty
dr("txtavionics") = String.Empty
dr("aModelNo") = String.Empty
dr("aYRBuilt") = String.Empty
dr("aSN") = String.Empty
dr("txtdatePurchased") = String.Empty
dr("rblPurchaseType") = String.Empty
dr("aircraftCost") = String.Empty
dr("hrsBtwnTBO") = String.Empty
dr("hrsOverhaul") = String.Empty
dr("TotOnAirFrm") = String.Empty
dt.Rows.Add(dr)
'Store the DataTable in ViewState for future reference
ViewState("CurrentTable1") = dt
'Bind the Repeater with the DataTable
Repeater2.DataSource = dt
Repeater2.DataBind()
End Sub
Private Sub AddNewRow2(registerNumber As String)
Dim rowIndex As Integer = 0
If ViewState("CurrentTable1") IsNot Nothing Then
Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable1"), DataTable)
Dim drCurrentRow As DataRow = Nothing
If dtCurrentTable.Rows.Count > 0 Then
For i As Integer = 1 To dtCurrentTable.Rows.Count
'extract the TextBox values
Dim tbTextBox2 As TextBox = DirectCast(Repeater2.Items(rowIndex).FindControl("aRegNo"), TextBox)
'Create new row in DataTable and set its values
drCurrentRow = dtCurrentTable.NewRow()
drCurrentRow("RowNumber") = i + 1
dtCurrentTable.Rows(i - 1)("aRegNo") = tbTextBox2.Text
rowIndex += 1
Next
'add the new row to the current DataTable
dtCurrentTable.Rows.Add(drCurrentRow)
'store the current DataTable in ViewState
ViewState("CurrentTable1") = dtCurrentTable
'rebind the Repeater with the updated DataTable
Repeater2.DataSource = dtCurrentTable
Repeater2.DataBind()
End If
Else
Response.Write("ViewState is null")
End If
'Set Previous Data on Postbacks
SetPreviousData2(registerNumber)
End Sub
Private Sub SetPreviousData2(registerNumber As String)
Dim rowIndex As Integer = 0
If ViewState("CurrentTable1") IsNot Nothing Then
Dim dt As DataTable = DirectCast(ViewState("CurrentTable1"), DataTable)
If dt.Rows.Count > 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
Dim tbTextBox2 As TextBox = DirectCast(Repeater2.Items(rowIndex).FindControl("aRegNo"), TextBox)
tbTextBox2.Text = dt.Rows(i)("aRegNo").ToString()
If dt.Rows.Count - 1 = i Then
tbTextBox2.Text = registerNumber
End If
rowIndex += 1
Next
End If
End If
End Sub
Protected Sub ButtonAdd2_Click(sender As Object, e As EventArgs)
End Sub
Private Sub AddNewRowToGrid()
Dim rowIndex As Integer = 0
If ViewState("CurrentTable") IsNot Nothing Then
Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
Dim drCurrentRow As DataRow = Nothing
If dtCurrentTable.Rows.Count > 0 Then
For i As Integer = 1 To dtCurrentTable.Rows.Count
Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("txtboatregNum"), TextBox)
Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("txttaxpayerret"), TextBox)
drCurrentRow = dtCurrentTable.NewRow()
drCurrentRow("ID") = i + 1
dtCurrentTable.Rows(i - 1)("Column1") = box1.Text
dtCurrentTable.Rows(i - 1)("Column2") = box2.Text
rowIndex += 1
Next
dtCurrentTable.Rows.Add(drCurrentRow)
ViewState("CurrentTable") = dtCurrentTable
Gridview1.DataSource = dtCurrentTable
Gridview1.DataBind()
End If
Else
Response.Write("ViewState is null")
End If
SetPreviousData()
End Sub
Private Sub SetPreviousData()
Dim rowIndex As Integer = 0
If ViewState("CurrentTable") IsNot Nothing Then
Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
If dt.Rows.Count > 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("txtboatregNum"), TextBox)
Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("txttaxpayerret"), TextBox)
box1.Text = dt.Rows(i)("Column1").ToString()
box2.Text = dt.Rows(i)("Column2").ToString()
rowIndex += 1
Next
End If
End If
End Sub
Protected Sub BtnAdd_Click(sender As Object, e As EventArgs)
AddNewRowToGrid()
End Sub
Protected Sub btnDelete_Click(sender As Object, e As EventArgs)
End Sub
Protected Sub Gridview1_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
Dim rowIndex As Integer = 0
Dim rowID As Integer = e.RowIndex
lblTotal.Text = "0"
If ViewState("CurrentTable") IsNot Nothing Then
Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
If dtCurrentTable.Rows.Count > 0 Then
For i As Integer = 1 To Gridview1.Rows.Count
Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("txtboatregNum"), TextBox)
Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("txttaxpayerret"), TextBox)
dtCurrentTable.Rows(i - 1)("Column1") = box1.Text
dtCurrentTable.Rows(i - 1)("Column2") = box2.Text
rowIndex += 1
Next
If e.RowIndex < dtCurrentTable.Rows.Count Then
dtCurrentTable.Rows.Remove(dtCurrentTable.Rows(rowID))
End If
End If
ViewState("CurrentTable") = dtCurrentTable
Gridview1.DataSource = dtCurrentTable
Gridview1.DataBind()
End If
SetPreviousData()
End Sub
Protected Sub OnClickNext(sender As Object, e As EventArgs)
myMultiView.ActiveViewIndex = 1
PopulateRecord()
End Sub
Private Sub PopulateRecord()
For Each row As GridViewRow In Gridview1.Rows
Dim registerNumber As String = TryCast(row.FindControl("txtboatregNum"), TextBox).Text
If row.RowIndex = 0 Then
Me.SetInitialRow2(registerNumber)
Else
AddNewRow2(registerNumber)
End If
For Each Item As RepeaterItem In Repeater2.Items
TryCast(Item.FindControl("BtnAdd2"), Button).Visible = Repeater2.Items.Count > 1
TryCast(Item.FindControl("btnDelete"), Button).Visible = Repeater2.Items.Count > 1
Next
Next
End Sub
Screenshot
