General  

Print Pyramid Star Pattern using C# in ASP.NET WebForms

Introduction

Star patterns are one of the most common exercises for beginners to learn looping and logic control in programming.
In this article, we’ll create a Pyramid Star Pattern using C# WebForms (Visual Studio 2015), demonstrating the use of nested loops and string building for dynamic HTML output.

Pattern to Print

If the user enters 5, output should be:

    *
   * *
  * * *
 * * * *
* * * * *

C# WebForms Real-Time Example

ASPX Page (PyramidPattern.aspx)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PyramidPattern.aspx.cs" Inherits="WebApp.PyramidPattern" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Pyramid Star Pattern in C# WebForms</title>
</head>
<body>
    <form id="form1" runat="server">
        <div style="font-family: Arial; margin: 50px;">
            <h2>Pyramid Star Pattern</h2>
            <asp:Label ID="Label1" runat="server" Text="Enter number of rows: " />
            <asp:TextBox ID="txtRows" runat="server"></asp:TextBox>
            <asp:Button ID="btnGenerate" runat="server" Text="Generate Pattern" OnClick="btnGenerate_Click" />
            <br /><br />
            <asp:Label ID="lblResult" runat="server" Font-Names="Consolas" Font-Size="Large"></asp:Label>
        </div>
    </form>
</body>
</html>

Code-Behind (PyramidPattern.aspx.cs)

using System;
using System.Text;

namespace WebApp
{
    public partial class PyramidPattern : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void btnGenerate_Click(object sender, EventArgs e)
        {
            int rows;
            if (int.TryParse(txtRows.Text, out rows) && rows > 0)
            {
                lblResult.Text = GeneratePyramid(rows);
            }
            else
            {
                lblResult.Text = "Please enter a valid positive number.";
            }
        }

        private string GeneratePyramid(int rows)
        {
            StringBuilder pattern = new StringBuilder();

            for (int i = 1; i <= rows; i++)
            {
                // Print leading spaces
                for (int j = i; j < rows; j++)
                {
                    pattern.Append("&nbsp;&nbsp;");
                }

                // Print stars
                for (int k = 1; k <= (2 * i - 1); k++)
                {
                    pattern.Append("*");
                }

                pattern.Append("<br/>");
            }

            return pattern.ToString();
        }
    }
}

Explanation

  1. User Input:
    The user enters the number of rows in the textbox.

  2. Button Click:
    The method btnGenerate_Click triggers the pattern generation.

  3. Logic Used:

    • Outer Loop (i) controls the number of rows.

    • First Inner Loop (j) adds spaces to center the stars.

    • Second Inner Loop (k) prints stars based on the current row.

  4. &nbsp; is used for spacing (since HTML collapses spaces).

  5. <br/> is used for line breaks to display the pyramid vertically.

Example Output

If you enter 5, you’ll get:

        *
      ***
    *****
  *******
*********

(Rendered properly in the web browser using &nbsp; spacing.)

Key Concepts

  • Nested Loops → Used for spacing and star printing.

  • HTML Rendering → Uses &nbsp; for spaces and <br/> for new lines.

  • StringBuilder → Efficient for constructing pattern strings in WebForms.

Real-Time Usage

Pyramid pattern generation logic is often used in:

  • Coding practice exercises in learning portals.

  • Online programming tutorials.

  • Educational web-based compilers built using ASP.NET WebForms.

Conclusion

This example shows how to use C# nested loops and string manipulation in a WebForms environment to generate a beautiful Pyramid Star Pattern dynamically based on user input.

It’s a perfect exercise for understanding loops, condition logic, and HTML rendering in ASP.NET.