2011-07-13 51 views
2

这里我的代码基于另一个模板字段值模板字段控制:背后ASP.NET如何隐藏在GridView中

<asp:GridView ID="_gvPLCs" runat="server" AutoGenerateColumns="False" 
           BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" 
           CellPadding="4" DataSourceID="_dsPLCs" ForeColor="Black" GridLines="Horizontal" 
           onrowcommand="_gvPLCs_RowCommand" onrowdatabound="_gvPLCs_RowDataBound"> 
           <Columns> 
            <asp:TemplateField ShowHeader="False"> 
             <ItemTemplate> 
              <asp:LinkButton ID="lbnView" runat="server" CausesValidation="false" 
               CommandName="view" Text="View manual"></asp:LinkButton> 
             </ItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="PLCName" SortExpression="PLCName"> 
             <ItemTemplate> 
              <asp:Label ID="Label1" runat="server" Text='<%# Bind("PLCName") %>'></asp:Label> 
             </ItemTemplate> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("PLCName") %>'></asp:TextBox> 
             </EditItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="PLCManual" SortExpression="PLCManual"> 
             <ItemTemplate> 
              <asp:Label ID="Label2" runat="server" Text='<%# Bind("PLCManual") %>'></asp:Label> 
             </ItemTemplate> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("PLCManual") %>'></asp:TextBox> 
             </EditItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="LabName" SortExpression="LabName"> 
             <ItemTemplate> 
              <asp:Label ID="Label3" runat="server" Text='<%# Bind("LabName") %>'></asp:Label> 
             </ItemTemplate> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("LabName") %>'></asp:TextBox> 
             </EditItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="MachineName" SortExpression="MachineName"> 
             <ItemTemplate> 
              <asp:Label ID="Label4" runat="server" Text='<%# Bind("MachineName") %>'></asp:Label> 
             </ItemTemplate> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("MachineName") %>'></asp:TextBox> 
             </EditItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="MaxAllowedToResDay" 
             SortExpression="MaxAllowedToResDay"> 
             <ItemTemplate> 
              <asp:Label ID="Label5" runat="server" Text='<%# Bind("MaxAllowedToResDay") %>'></asp:Label> 
             </ItemTemplate> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox5" runat="server" 
               Text='<%# Bind("MaxAllowedToResDay") %>'></asp:TextBox> 
             </EditItemTemplate> 
            </asp:TemplateField> 
           </Columns> 
           <FooterStyle BackColor="#CCCC99" ForeColor="Black" /> 
           <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" /> 
           <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" /> 
           <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" /> 
          </asp:GridView> 

代码:

protected void _gvPLCs_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType != DataControlRowType.DataRow) 
     return; 
    if (e.Row.Cells[2].Text == "&nbsp;") 
    { 
     LinkButton lbnview = (LinkButton)e.Row.FindControl("lbnView"); 
     lbnview.Visible = false; 
    } 
} 

这不符合我工作.. plz帮助

我需要的是:在没有手册;视图手动链接消失

我测试了它全光照克这种代码:

if (e.Row.Cells[2].Text == string.Empty) 
    { 
     LinkButton lbnview = (LinkButton)e.Row.FindControl("lbnView"); 
     lbnview.Visible = false; 
    } 

,但它总是给我 “” 始终manaul场消失

+0

正在检测 “ ” 真的是你想要的吗?如果字符串是“”或null,该怎么办?尝试对一些东西进行硬编码,看它是否是测试或实际隐藏代码失败。 –

+0

@Steve:我编辑了我的代码>> plz看看 – Ragaei

+0

@Ragaei对这个有什么好运? – rsbarro

回答

1

试试这个:

<asp:LinkButton ID="lbnView" runat="server" CausesValidation="false" CommandName="view" Text="View manual" Visible='<%# !string.IsNullOrEmpty(Bind("PLCName").ToString()) %>'></asp:LinkButton>