C# 在gridview的单行中填充多行的值
我试图在gridview的代码隐藏页面的rowdatabound部分使用c sharp填充单行中多行的值,如下所示:C# 在gridview的单行中填充多行的值,c#,asp.net,gridview,C#,Asp.net,Gridview,我试图在gridview的代码隐藏页面的rowdatabound部分使用c sharp填充单行中多行的值,如下所示: Col1 Col6 a 1 a 2 a 3 a 4 我已将此更改为 Col1 Col6 a 1 2 3 4 现在我想实现这一点,有什么帮助吗 Col1 Col6 a
Col1 Col6
a 1
a 2
a 3
a 4
我已将此更改为
Col1 Col6
a 1
2
3
4
现在我想实现这一点,有什么帮助吗
Col1 Col6
a 1 2 3 4
下面的代码有什么问题
if (e.Row.Cells[0].Text == "" && e.Row.Cells[5].Text != "")
{
for (int a = 0; a<GridView1.Rows.Count; a++)
{
string s = GridView1.Rows[a].Cells[5].Text;
GridView1.Rows[e.Row.RowIndex - 1].Cells[5].Text += s;
}
}
我认为你是从错误的方向来处理这个问题的。将GridView视为仅显示。在将数据交给GridView之前,需要尽可能地安排数据。我不确定数据是如何存储的,但您可能希望遍历数据并创建新记录,这些记录本质上是一个分组,并将所有需要的数据放在一行中,以便进行数据绑定 使用RowDataBound或任何数据绑定方法的问题在于,您是在逐行处理数据,这不是您想要的,因为您无法“查看”上下文中的其他行数据 至于数据的排列,您可以使用以下代码段为每个col1值获取逗号分隔的列表:
string commaValues = string.Join(",",
(yourList.Where(i => i.Col1.Equals(someValue)).
Select(s => s.YourStringValue)).ToArray()));
这将为示例中的给定值someValue生成逗号分隔的字符串:
commaValues = "1,2,3,4,5"
使用上面的命令可以组成一个对象列表,这样您就可以直接绑定到它。例如:
class NewObject
{
public string ID { get; set; }
public string Text { get; set; }
}
List<NewObject> arrangedData = new List<NewObject>();
// arrange the data here
yourGrid.DataSource = arrangedData;
yourGrid.DataBind();
如何在受保护的无效页\u Loadobject sender,System.EventArgs中写入此代码如何在受保护的无效页\u Loadobject sender,System.EventArgs中写入此代码e@user680865我不知道你想要什么。您还没有发布任何数据的外观、GridView的期望值等。我已经发布了到达您想要的位置所需的基本步骤。在绑定之前,将数据排列到新的数据结构中。然后将GridView绑定到这个新对象,这样网格就不必做任何工作,只需按原样显示数据。
class NewObject
{
public string ID { get; set; }
public string Text { get; set; }
}
List<NewObject> arrangedData = new List<NewObject>();
// arrange the data here
yourGrid.DataSource = arrangedData;
yourGrid.DataBind();