Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 合并单元格上的onrow命令求值_C#_Asp.net_Gridview - Fatal编程技术网

C# 合并单元格上的onrow命令求值

C# 合并单元格上的onrow命令求值,c#,asp.net,gridview,C#,Asp.net,Gridview,首先 我有一个gridview,我在其中合并了一些行上的单元格。然后,我需要能够从未合并的单元格和已合并的单元格中获取数据 所以我有一个OnRowCommand,它接受commandArgument。这对于没有合并单元格的行非常有效,但对于具有longcell的行则不起作用。我也尝试过,但没有成功 以下是简化的gridview代码: 经过更多的谷歌搜索和堆栈溢出,我设法找到了问题,埃尔夫的答案对我帮助很大 我现在使用CommandArgument=获取索引,然后从那里开始工作:p您在哪里更改列s

首先

我有一个gridview,我在其中合并了一些行上的单元格。然后,我需要能够从未合并的单元格和已合并的单元格中获取数据

所以我有一个OnRowCommand,它接受commandArgument。这对于没有合并单元格的行非常有效,但对于具有longcell的行则不起作用。我也尝试过,但没有成功

以下是简化的gridview代码:


经过更多的谷歌搜索和堆栈溢出,我设法找到了问题,埃尔夫的答案对我帮助很大


我现在使用CommandArgument=获取索引,然后从那里开始工作:p

您在哪里更改列span?哪个事件?在“col3”或“col2”中传递的值是什么?我不明白。您有一个图像按钮,当您单击该按钮时,您将运行RowCommand-您肯定会传递一些ID或其他?“col3”或“col2”指的是什么?col3和col2只是作为CSV的信息字符串,实际上是唯一的。但如果你看我的小提琴。我可以获取所有包含3个单元格的行,但如果我尝试获取2个单元格的行,它将始终采用第一个匹配,因为它们的col3值都为null。我始终传递行的唯一ID,并从该行中检索所需的任何数据-从DataKeyNames集合或数据库中。
<asp:GridView ID="myGridview" runat="server" AutoGenerateColumns="false"
                 OnRowCommand="myGridview_RowCommand">                     
    <Columns>
        <asp:BoundField DataField="col1" HeaderText="col1" />
        <asp:BoundField DataField="col2" HeaderText="col2" />
        <asp:BoundField DataField="col3" HeaderText="col3" />          
        <asp:TemplateField>
            <HeaderTemplate>
                Actions
            </HeaderTemplate>
            <ItemTemplate>
                <asp:ImageButton ID="imbEdit" runat="server" ImageUrl="~/css/images/Edit.png" Width="16" CommandName="wEdit" CommandArgument='<%#Eval("col3")%>' />
            </ItemTemplate>
       </asp:TemplateField>
   </Columns>
foreach (int i in rowIndexes)
{
    myGridview.Rows[i].Cells[1].ColumnSpan = 2;
    myGridview.Rows[i].Cells.RemoveAt(2);
}