以下是一些字符串项:
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不显示任何数据...应该使用什么方法来解决此问题?
ttvkxqim1#
看看这是否适合您。忘记循环,像这样的启用数据的控件更适合数据绑定,而不是直接处理行。
gridview1.DataSource = r; gridview1.Databind();
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(); }
现在我们看到/得到这个:
因此,在大多数情况下,您不能只发送一个字符串列表,而是发送一个具有“结构”的列表,然后该列表将成为网格视图的列。
2条答案
按热度按时间ttvkxqim1#
看看这是否适合您。忘记循环,像这样的启用数据的控件更适合数据绑定,而不是直接处理行。
sczxawaw2#
好的,使用这个标记:
则后面代码如下:
我们现在得到这个:
然而,作为一般规则,您必须向gv提供一个“结构化”的数据列表。
因此,这意味着“列”或至少每一行都需要有数据的“定义”。
我们可以将上面的代码更改为:
现在我们看到/得到这个:
因此,在大多数情况下,您不能只发送一个字符串列表,而是发送一个具有“结构”的列表,然后该列表将成为网格视图的列。