我试图用指定的参数隐藏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>
答案 0 :(得分:0)
我认为这应该有效。可能需要调整才能找到按钮控件
%HOMEDRIVE%\Users\%USERNAME%\.posh-gvm
|__ groovy
|__ scala
|__ grails
\__ etc...
...