合并单元格上的OnRowCommand eval

时间:2014-07-22 09:29:07

标签: c# asp.net gridview

首先,Here is a little fiddle to represent my gridview

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

所以我有一个OnRowCommand,它接受commandArgument <%#Eval("col3")%>。这适用于没有合并单元格的行,但是对于longcell的行,它不起作用。我也试过<%#Eval("col2")%>但没有成功。

这里是gridview代码(简化):

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

1 个答案:

答案 0 :(得分:0)

经过一些google搜索和搜索堆栈溢出后,我设法找到了this问题,其中Elph做了一个帮助我很多的答案。

我现在使用CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'获取索引,然后我从那里开始工作:P