Associating a GridView with a List of Rows

I have a list that I bind to a GridView, so my GridView will only have one column of these string values. I want to have the appropriate header text for this column. Please help me. See what I tried to do:

<asp:GridView ID="GridView1" runat="server" Width="95%">

<Columns>

<asp:BoundField HeaderText="My List" />

</Columns>

</asp:GridView>

And in the code behind:

List<string> myList = new List<string>();

:

:

// code to populate myList

:

:

GridView1.DataSource = myList;

GridView1.DataBind();

When I run this code, I get two columns in the GridView. The first column has heading text as β€œMy List” and has empty rows, while the second column has heading text as β€œItem” and has rows with myList values. I want to have only one column in my GridView with a text heading like "My List" and rows with the values ​​of the myList object.

thank

+5
source share
8 answers

:

Aspx:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="test" HeaderText="Text" />
    </Columns>
</asp:GridView>

:

var ls=new List<string>();
ls.Add("Test");
ls.Add("Test2");
gv.DataSource=ls.Select (l =>new{test=l});
+3

AutoGenerateColumns="false", ; , ; Item, , DataField="Item" . , :

this.gvw.DataSource = mylist.Select(i => new { Data = i });

.

3 - AutoGenerateColumns="true" ( ) .

+1

, , :

        <asp:gridview id="MyGridView" runat="server" showheaderwhenempty="true" autogeneratecolumns="false" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="My List">
            <ItemTemplate>
                <asp:Label ID="Column1" runat="server" Text=<%# Container.DataItem %>></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        </Columns>
        </asp:gridview>
+1

RowDataBound.

protected void GridView_MyList_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
              ((Label)e.Row.Cells[1].Controls[0]).Text = "My List";
            }
        }

GridView

<asp:GridView ID="GridView_MyList" runat="server" 
Width="800px" OnRowDataBound="GridView_MyList_RowDataBound"></asp:GridView>
0

:

<asp:GridView ID="GridView1" runat="server">
</asp:GridView>


 List<string> l = new List<string>();
            l.Add("computer");
            l.Add("laptop");
            l.Add("palmtop");

            GridView1.DataSource = l;
            GridView1.DataBind();
            GridView1.HeaderRow.Cells[0].Text = "My List";
0

AutoGenerateColumns="false"

0

Container.DataItem

.cs

List<string> myList = new List<string>();
GridView1.DataSource = myList ;
GridView1.DataBind();

.aspx

    <asp:gridview ID="GridView1" runat="server">
        <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label ID="nasdc" runat="server" Text=<%# Container.DataItem %>></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        </Columns>

http://forums.asp.net/t/1050997.aspx?How+to+bind+a+GridView+to+a+List+string+

0
source

method 1:

make automatic creation of column properties true

<asp:GridView ID="GridView1" runat="server" Width="95%" autogeneratecolumns = "true">

</asp:GridView>

method 2:

make automatic creation of column properties false

<asp:GridView ID="GridView1" runat="server" Width="95%">
    <Columns>
    <asp:BoundField HeaderText="My List" />
    </Columns>
</asp:GridView>
-1
source

All Articles