asp.net 如何在GridView中显示每个字符串项?

webghufk  于 2022-12-01  发布在  .NET
关注(0)|答案(2)|浏览(113)

以下是一些字符串项:

string[] r = {"item1","item2", "item3"}

我想循环遍历GridView并将每个字符串项添加到GridView行中

for (int i = 0; i < GridView1.Rows.Count; i++)
    {
         GridView1.Rows[i].Cells[0].Text += r[i];

    }

GridView不显示任何数据...应该使用什么方法来解决此问题?

ttvkxqim

ttvkxqim1#

看看这是否适合您。忘记循环,像这样的启用数据的控件更适合数据绑定,而不是直接处理行。

gridview1.DataSource = r;
gridview1.Databind();
sczxawaw

sczxawaw2#

好的,使用这个标记:

<asp:GridView ID="GridView1" runat="server" Width="300px">

</asp:GridView>

则后面代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            LoadData();
    }

    void LoadData()
    {

        string[] r = { "item1", "item2", "item3" };
        GridView1.DataSource = r;
        GridView1.DataBind();

    }

我们现在得到这个:

然而,作为一般规则,您必须向gv提供一个“结构化”的数据列表。
因此,这意味着“列”或至少每一行都需要有数据的“定义”。
我们可以将上面的代码更改为:

struct MyName
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string CodeName { get; set; }
        public MyName(string firstName, string lastName, string sCode)
        {
            FirstName = firstName;
            LastName = lastName;
            CodeName = sCode;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            LoadData();
    }

    void LoadData()
    {

        List<MyName> MyNames = new List<MyName>();

        MyNames.Add(new MyName("Clark", "Kent", "Superman"));
        MyNames.Add(new MyName("Peter", "Parker", "Spiderman"));
        MyNames.Add(new MyName("Bruce", "Wayne", "Batman"));
        MyNames.Add(new MyName("Tony", "Stark", "Ironman"));

        GridView1.DataSource = MyNames;
        GridView1.DataBind();
    }

现在我们看到/得到这个:

因此,在大多数情况下,您不能只发送一个字符串列表,而是发送一个具有“结构”的列表,然后该列表将成为网格视图的列。

相关问题