Kalina
Kalina

Reputation: 5594

How to hard-code a GridView in my .aspx file?

I want to have a GridView with static data in it, not linked to any database or data source, and I would like to hard-code it directly in my aspx file.

I'm brand new to ASP.NET and have no idea what I'm doing, and for whatever reason I can't find anything online about how to do this.

I'm trying to create a one-column table with a heading of "Hello World" and two data items, "Hello" and World". Here is what I'm trying, but nothing is showing up on the page when I run it:

<asp:GridView ID="GridView" runat="server">
    <Columns>
        <asp:TemplateField HeaderText ="Hello World">
            <ItemTemplate>
                <asp:Label ID="lblHello" runat ="server" Text ="Hello"/>
            </ItemTemplate>
            <ItemTemplate>
                <asp:Label ID="lblWorld" runat ="server" Text ="World"/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Upvotes: 1

Views: 12791

Answers (1)

Win
Win

Reputation: 62260

You want to assign either IEnumerable, DataSet or DataTable to display data in GridView.

enter image description here

<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="Hello World">
            <ItemTemplate>
                <asp:Label ID="lblHello" runat="server" 
                Text='<%# Eval("Text1") %>' />
                <asp:Label ID="lblWorld" runat="server" 
                Text='<%# Eval("Text2") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

public class Item
{
    public string Text1 { get; set; }
    public string Text2 { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    GridView.DataSource = new List<Item>
        {
            new Item {Text1 = "Hello", Text2 = "World"}
        };
    GridView.DataBind();
}

Updated:

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        GridView.DataSource = 
            new Dictionary<string, string> { { "Hello", "World" } };
        GridView.DataBind();
    }
</script>
<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="Hello World">
            <ItemTemplate>
                <asp:Label ID="lblHello" runat="server" 
                Text='<%# Eval("Key") %>' />
                <asp:Label ID="lblWorld" runat="server" 
                Text='<%# Eval("Value") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Upvotes: 4

Related Questions