Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在gridview的单行中填充多行的值_C#_Asp.net_Gridview - Fatal编程技术网

C# 在gridview的单行中填充多行的值

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

我试图在gridview的代码隐藏页面的rowdatabound部分使用c sharp填充单行中多行的值,如下所示:

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();