-->

Sunday, August 11, 2013

WrapPanel Overview in WPF

Wrap panel is similar to stack panel, but while stack panel stacks its items, wrap panel wrap them to additional rows and columns according to provided space. It may be used when the list of items is to be shown. When we are not sure about the item count then wrap panel will wrap the items continuously like in windows explorer.

WrapPanel in WPF

Orientation property of wrap panel is Horizontal by default that is changeable. The above image is simple created by using the following code:
<WrapPanel>
<Button Content="First"></Button>
<Button Content="Second"></Button>
<Button Content="Third"></Button>
<Button Content="Four"></Button>
<Button Content="Five"></Button>
</WrapPanel>
<WrapPanel Orientation="Vertical">
<Button Content="First"></Button>
<Button Content="Second"></Button>
<Button Content="Third"></Button>
<Button Content="Four"></Button>
<Button Content="Five"></Button>
</WrapPanel>

Nested wrap panel can be used in the same way stack panel is used.
Dock panel

How to use Application State, Session State and View State in ASP.NET

Application State : Application state is used to store data corresponding to all the variables of an ASP.NET Web application. The data in application state is stored once and read several times. Application state uses the HttpApplicationstate class to store and share the data throughout the application. You can access the information stored in an applicationstate by using the HttpApplication class property. Data stored in application state is accessible to all the pages of the application and is the same for all users accessing the application. The HttpApplicationstate class provides a lock, method , which you can use to ensure that only one user is able to access and modify the data of an application at any instant of time.

Session State : Each client accessing a Web application maintains a distinct session with the Web server, and there is also specific information associated with each of these sessions. Session state is defined in the <sessionState> section of the web.config file. It also stores the data specific to a user session in session variables. Different session variables are created for each user session. In addition, session variables can be accessed from any page of the application. When a user accesses a page , a session ID for the user is created. The session ID is transferred between the server and the client over the HTTP protocol using cookies.

View State :  View state stores page specific information , when a page is posted back to the server. When a page is processed, the current state of the page and its controls is hashed (transforming a sequence of character into a fixed-length value ) into a string and saved as a hidden field on the page. Such  a state of the page is called view state.

Example of Application State , Session State and View State
Step-1 : Add Global.asax file in your project
Step-2 : Copy this code and paste in your global.asax file


<%@ Application Language="C#" %>
<%@ Import Namespace="WebSite2" %>
<%@ Import Namespace="System.Web.Optimization" %>
<%@ Import Namespace="System.Web.Routing" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
        Application["visits"] = 0;
   
    }
 
    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown

    }

    void Application_Error(object sender, EventArgs e)
    {
        // Code that runs when an unhandled error occurs

    }
    void Session_Start(Object sender, EventArgs e)
    {
        Session["mytext"] = "I am a teacher";
     
    }

</script>

Step-3: Add a webform in your project
Step-4: Copy this code and paste to your webform
Source code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="saexample.aspx.cs" Inherits="saexample" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
 
        Enter your name :
        <asp:TextBox ID="TextBox1" runat="server" Height="26px" Width="155px"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
        <br />
        <asp:Label ID="Label1" runat="server"></asp:Label>
        <br />
        <br />
        Application State :<br />
        Number of last visit :<br />
        <asp:Label ID="Label2" runat="server"></asp:Label>
        <br />
        <br />
        Session State<br />
        <asp:Label ID="Label3" runat="server"></asp:Label>
        <br />
 
    </div>
    </form>
</body>
</html>


Code Behind 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 saexample : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Application["visits"] = (int)Application["visits"] + 1;
        Label2.Text = Application["visits"].ToString();
        Label3.Text = (string)Session["mytext"];

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string txtvalue = TextBox1.Text;
        ViewState.Add("item", txtvalue);
        string item = (string)ViewState["item"];
        Label1.Text = item;
    }
}

OutPut


How to use Application State, Session State and View State in ASP.NET

Friday, August 9, 2013

How to add control to the footer of Gridview in ASP.NET

Top related post


Add FooterTemplate in Gridview
Source code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="footercontrol.aspx.cs" Inherits="footercontrol" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns ="false" ShowFooter="True">
            <Columns >
                <asp:TemplateField HeaderText ="header template">
                    <ItemTemplate>
<asp:Label ID="l1" runat ="server" Text ='<% # Eval("Name") %>' />
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:Button ID="Button1" runat="server" Text="Footer template" />
                    </FooterTemplate>
                </asp:TemplateField>

            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>
CodeBehind File


using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

public partial class footercontrol : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new System.Data.SqlClient.SqlConnection();
        con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        con.Open();
        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
        cmd.CommandText = "Select * from commentbox";
        cmd.Connection = con;
        System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd);
        System.Data.DataSet ds = new System.Data.DataSet();
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }
}

Output
How to add control to the footer of Gridview in ASP.NET



Thursday, August 8, 2013

How to use HTTP Handlers in ASP.NET

HTTP Handlers, as the name suggest, handle user requests for  Web application resources. They are the backbone of the request-response model of web applications. For each user request type, there is a specific event handler to handle the request and send back the corresponding response object.
Each user request to the IIS Web Server flows through the HTTP pipeline, which refers to a series of components (HTTP Modules and HTTP Handlers) to process the request. HTTP Modules act as filters to process the request as it passes through the HTTP pipeline. The request, after passing through the HTTP Modules, is assigned to an HTTP Handlers that determines the response of the server to the user request. The response then passes through the HTTP Modules once again and sends back to the server.

You can define HTTP Handlers in the <httpHandlers> section of a configuration file. The <add> element tag is used to add new handlers and the <remove> elements tag is used to remove existing handlers. To create an HTTP Handlers, you need to define a class that implements an IHttpHandler interface. The two methods of the IHttpHandler interface are:

ProcessRequest ( ) : Invoked when a user request is received. It processes the request using the HttpContext object, which is passed as a parameters.
IsReusable ( ) - Determines whether the HTTP Handler object, accessed using the Processrequest ( ) method , can be reused. The HTTP handler object can only be reused if the IsReusable ( ) method returns a true value. The object is discarded when the HTTP Handlers object returns a false value.

Example of HTTP Handlers in ASP.NET

First need to create a class file CustomHandler.cs



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for CustomHandler
/// </summary>
namespace CustomHTTP
{
public class CustomHandler : IHttpHandler
{

    public bool IsReusable()
    {
        return true;
    }
    public void ProcessRequest(System.Web.HttpContext context)
    {
        HttpResponse response = context.Response;
        response.Write("<html><body><h2>Example of HTTP Handlers </body></html>");

    }
}
}
Add the code in the section of the web.config file


 <httpHandlers>
      <add verb ="*" path ="CustomHttp.test" type ="CustomHTTP.CustomHandler"/>
 
 
    </httpHandlers>

Wednesday, August 7, 2013

How to use web User Control in ASP.NET

Example of Web User Control

Step-1 : Add Web User Control file in solution explorer name  as " WebUserControl.ascx".
Step-2 :  Drop some controls from tool box to  Designing window of WebUserControl.ascx page .

How to use web User Control in ASP.NET

Step-3 : Add a Web form in Solution explorer name as " usercontroluses.aspx" 
Step-4 : Drop "WebUserControl.ascx " page from solution explorer  to Web form ( usercontroluses.aspx)
Step-5 :  Check your Web Form designing part .
How to use web User Control in ASP.NET


After dropping your web form contain a single Register directive and  one user defined tag.

<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>

<uc1:WebUserControl ID="WebUserControl1" runat="server" />

Code file of WebUserControl.ascx

<%@ Control Language="C#" ClassName="WebUserControl" %>
<script runat="server">
</script>
<asp:Label ID="Label1" runat="server" Text="UserName"></asp:Label>
&nbsp;:
<asp:TextBox ID="TextBox1" runat="server" Width="189px"></asp:TextBox>
<p>    &nbsp;</p>
<p>    Password :&nbsp;
    <asp:TextBox ID="TextBox2" runat="server" Width="192px"></asp:TextBox>
</p>
<p>
    <asp:Button ID="Button1" runat="server" Text="Submit " />
</p>
Code file of  usercontroluses.aspx


<%@ Page Language="C#" %>
<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
<!DOCTYPE html>
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
 
        <uc1:WebUserControl ID="WebUserControl1" runat="server" />
 
    </div>
    </form>
</body>
</html>

Output Caching with the VaryByParam Attribute

Example of output Caching with the VaryByParam Attribute

        <%@ Page Language="C#" %>
<%@ OutputCache Duration ="60" VaryByParam ="Name" %>

<!DOCTYPE html>

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
     
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (IsPostBack )
        {
            Name.Visible = false;
            Label3.Visible = false;
            Button1.Visible = false;
            Label2.Text = "the output of this page was cached for" + Name.Text + "The current time is" + DateTime.Now.ToString();
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
 
        <asp:Label ID="Label3" runat="server" Text="Please Enter your name:"></asp:Label>
        <asp:TextBox ID="Name" runat="server"></asp:TextBox>
 
        <br />
        <asp:Label ID="Label1" runat="server"></asp:Label>
        <br />
        <asp:Label ID="Label2" runat="server"></asp:Label>
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
 
    </div>
    </form>
</body>
</html>

Output
Output Caching with the VaryByParam Attribute

Output Caching with the VaryByParam Attribute


Validating Input Controls in windows forms C#

Data entered by user, should be valid and properly formatted, Otherwise a lot of resources could be wasted in fixing the problems that could be arise due to incorrect data format. Data should be properly checked according to the input criteria. Windows forms provides some ways to validate input in your application.

Masked TextBox Validation

We often requires some data like contact number in a well-defined format and also correct no of digits. This problem can easily be solved by using MaskedTextBox in windows forms. MaskedTextBox displays some formats to the user. If user types a wrong entry then this textbox automatically reject that input.

Just add a MaskedTextBox control and look out the mask property. There are approx. 9 predefined masks such as Phone number, zip code, Numeric digits etc. as in following screenshot:
Mask options of Masked TextBox in windows forms

There is no mask for mobile no in the above masks, so we have to create a new mask. Use the last mask i.e. custom mask and insert ten zero’s in the mask textbox just below the list of mask because mobile no is of ten digits, and our new mask has been created.

Event-Driven Validation

Each input control has a Validating event that occur whenever the control requires data validation. Validating event enables you to prevent from shifting focus from the control being validated to another control until validation has been completed.

To check whether the textbox is blank or not, we will simply check this by using the following line of codes in validating event of textbox in C# language.
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if (textBox1.Text == string.Empty)
{
MessageBox.Show("Textbox is empty");
}
}

Just like above code we can validate any other control using some lines of code. There is an argument e of type CancelEventArgs, which can be used to cancel the validating event if required input has been entered by user.
Displaying message when validating the textbox

As in above screenshot if the textbox left empty by the user then a message has been displayed written above. This message can be displayed by any of the message box, status strip etc.
© Copyright 2013 Computer Programming | All Right Reserved