teHello Friends
Manytime we need to use ViewState while working 3-tier Architecture but its difficult to use it.
here i have made a sample to use Viewstate from Classfile
ViewState:
Viewstate is an object of Class StateBag
Here is sample of Viewstate in Class file
in this example we will add names from Textbox to gridview using Viewstate.
so
in code behind
and in aspx.cs file
Now Create a Controller file named Controller_Default.cs in a Folder named Controller
The Code in the Controller Class will go like this
in this code we have created and object Named objViewState of class ViewStateClass.
The Syntex objViewState.GetViewStateTable("TblNames") is used to get DataTable from ViewState
Same way objViewState.SetViewState("TblNames", dt); Saves the DataTable in ViewState.
Now here is the class ViewStateClass , you can download it from here
in this class we have many methods to save different types like String,Int, Array and so on ... you can create same whichever you require.
you can download the source from Here
All The Best
Manytime we need to use ViewState while working 3-tier Architecture but its difficult to use it.
here i have made a sample to use Viewstate from Classfile
ViewState:
Viewstate is an object of Class StateBag
Here is sample of Viewstate in Class file
in this example we will add names from Textbox to gridview using Viewstate.
so
in code behind
<div> Name : <asp:TextBox ID="txtName" runat="server"></asp:TextBox><asp:Button ID="btnAdd" runat="server" Text="Add" /> </div> <div> <asp:GridView ID="grvNames" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <Columns> <asp:BoundField DataField="ID" HeaderText="No" /> <asp:BoundField DataField="SName" HeaderText="Name" /> </Columns> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:GridView> </div>
and in aspx.cs file
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Controller_Default objController = new Controller_Default(this.ViewState); btnAdd.Click += new EventHandler(objController.btnAdd_Click); } }
Now Create a Controller file named Controller_Default.cs in a Folder named Controller
The Code in the Controller Class will go like this
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Collections; using System.Data; using System.Web.UI.WebControls; public class Controller_Default { #region Variables & contructors IDictionary _ViewState; public Controller_Default() { } public Controller_Default(IDictionary objStageBag) { _ViewState = objStageBag; } #endregion #region Events ////// Button Event to Add Name /// /// /// public void btnAdd_Click(object sender, EventArgs e) { Button btn = (Button)sender; try { DataTable dt = new DataTable(); ViewStateClass objViewState = new ViewStateClass(_ViewState); if (objViewState.GetViewStateTable("TblNames") != null) dt = objViewState.GetViewStateTable("TblNames"); else dt = CreateNewTable(); DataRow dr = dt.NewRow(); dr["ID"] = dt.Rows.Count + 1; dr["SName"] = ((TextBox)btn.Parent.FindControl("txtName")).Text.ToString(); dt.Rows.Add(dr); objViewState.SetViewState("TblNames", dt); GridView grv = (GridView)btn.Parent.FindControl("grvNames"); grv.DataSource = dt; grv.DataBind(); ((TextBox)btn.Parent.FindControl("txtName")).Text = string.Empty; ((TextBox)btn.Parent.FindControl("txtName")).Focus(); } catch (Exception Ex) { } } #endregion #region Methods ////// Method to Create New Table /// ///private DataTable CreateNewTable() { DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("SName"); return dt; } #endregion }
in this code we have created and object Named objViewState of class ViewStateClass.
The Syntex objViewState.GetViewStateTable("TblNames") is used to get DataTable from ViewState
Same way objViewState.SetViewState("TblNames", dt); Saves the DataTable in ViewState.
Now here is the class ViewStateClass , you can download it from here
in this class we have many methods to save different types like String,Int, Array and so on ... you can create same whichever you require.
you can download the source from Here
All The Best