在asp.net中隐藏gridView行的项目

时间:2018-01-09 21:02:53

标签: c# asp.net gridview

我试图用指定的参数隐藏gridview中的几行行项目。如果该行中的标签“ProductDetail”具有数组中的任何值,则应该隐藏“btnDuplicateRow”按钮

protected void grdEstimateDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{           
    String[] arr = new String[6];
    arr[0] = "Malarkey";                

    for (int i = 0; i < grdEstimateDetails.Rows.Count; i++)
    {
        Label lblctrl = (Label)grdEstimateDetails.Rows[i].FindControl("ProductDetail");

        var btnDuplicateRow1 = (ImageButton)grdEstimateDetails.Rows[i].Cells[1].FindControl("btnDuplicateRow");

        if (arr.Contains(lblctrl.Text))
        {
             btnDuplicateRow1.Visible = false;
        }               
    }
}

<ItemTemplate>
    <asp:Label ID="lblProductDetail" runat="server" Text='<%# Eval("ProductDetail") %>'></asp:Label>
</ItemTemplate>

<asp:ImageButton runat="server" ID="btnDuplicateRow" ImageUrl="~/Web/Images/add-18x18.png" 
    CommandName="DuplicateRow" CommandArgument="<%#((GridViewRow)Container).RowIndex %>" 
    ToolTip="Duplicate"/>

现在我将对象引用设置为未设置为对象的实例。错误。

我尝试的另一件事是隐藏行

e.Row.Visible = false;

但仍然无效。

感谢。

编辑:
gridview的:


            

            <asp:TemplateField HeaderText="Product/Detail" >
                <ItemTemplate>
                    <asp:Label ID="lblProductDetail" runat="server" Text='<%# Eval("ProductDetail") %>'></asp:Label>
                                            <asp:Label ID="Label1" runat="server" Text='Friday'></asp:Label>

                </ItemTemplate>
            </asp:TemplateField>

            <asp:TemplateField Visible="true">
                <ItemTemplate>
                    <table cellpadding="0" cellspacing="0">
                        <tr>


                            <td>
                                <asp:ImageButton runat="server" ID="btnDuplicateRow" ImageUrl="~/Web/Images/add-18x18.png" 
                                    CommandName="DuplicateRow" CommandArgument="<%#((GridViewRow)Container).RowIndex %>" 
                                    ToolTip="Duplicate"/>
                            </td>

                        </tr>
                    </table>
                </ItemTemplate>
            </asp:TemplateField>

        </Columns>
        <SelectedRowStyle BackColor="Khaki"></SelectedRowStyle>
    </asp:GridView>

1 个答案:

答案 0 :(得分:0)

我认为这应该有效。可能需要调整才能找到按钮控件

%HOMEDRIVE%\Users\%USERNAME%\.posh-gvm
|__ groovy
|__ scala
|__ grails
\__ etc...

...