C# 基于另一列在GridView中隐藏单元格

C# 基于另一列在GridView中隐藏单元格,c#,asp.net,gridview,visual-studio-2012,C#,Asp.net,Gridview,Visual Studio 2012,我有以下GridView: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="SysInvoiceID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="InvoiceID" Header

我有以下GridView:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="SysInvoiceID" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="InvoiceID" HeaderText="SysInvoiceID" ReadOnly="True" SortExpression="SysInvoiceID" />
                <asp:BoundField DataField="BillMonth" HeaderText="BillMonth" SortExpression="BillMonth" />
                <asp:BoundField DataField="InvoiceDate" HeaderText="InvoiceDate" ReadOnly="True" SortExpression="InvoiceDate" />
                <asp:BoundField DataField="InvoiceNumber" HeaderText="InvoiceNumber" SortExpression="InvoiceNumber" />
                <asp:BoundField DataField="Net" HeaderText="Net" SortExpression="Net" />
                <asp:BoundField DataField="VAT" HeaderText="VAT" SortExpression="VAT" />
                <asp:BoundField DataField="Gross" HeaderText="Gross" SortExpression="Gross" />
                <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
            </Columns>
        </asp:GridView>

最后一列(ButtonField)是我自己创建的,只是为了在每一行中包含文本“View”,单击该文本将显示PDF发票

我不确定这是否可行,但我想知道是否可以为该列或其他内容添加某种验证,以便在“InvoiceID”列为空时,相应行上的“View”链接不会显示

通过在VisualStudio中使用“分割视图”,然后在GridView任务上使用“编辑列”按钮,我感觉接近完成此操作,但正如我所说的,我不确定是否有可能以这种方式完成此操作,并且可能不得不求助于简单的编码

谢谢你的帮助

使用
而不是


然后在页面中添加一个
IsEmpty(stringid)
方法或任何类型的id,然后先检查它是否为空

您还可以向按钮添加一个
CommandArgument
属性,该属性将允许您指定该按钮的参数。

使用
而不是


然后在页面中添加一个
IsEmpty(stringid)
方法或任何类型的id,然后先检查它是否为空

您还可以向按钮添加一个
CommandArgument
属性,该属性将允许您指定该按钮的参数。

使用
而不是


然后在页面中添加一个
IsEmpty(stringid)
方法或任何类型的id,然后先检查它是否为空

您还可以向按钮添加一个
CommandArgument
属性,该属性将允许您指定该按钮的参数。

使用
而不是


然后在页面中添加一个
IsEmpty(stringid)
方法或任何类型的id,然后先检查它是否为空

您还可以向按钮添加一个
CommandArgument
属性,该属性将允许您指定该按钮的参数。

使用占位符

<asp:Placeholder runat="server" ID="plView" Visible="<%# Convert.ToBoolean(InvoiceID == null) ? false : true %>">
    <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
</asp:Placeholder>

使用占位符

<asp:Placeholder runat="server" ID="plView" Visible="<%# Convert.ToBoolean(InvoiceID == null) ? false : true %>">
    <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
</asp:Placeholder>

使用占位符

<asp:Placeholder runat="server" ID="plView" Visible="<%# Convert.ToBoolean(InvoiceID == null) ? false : true %>">
    <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
</asp:Placeholder>

使用占位符

<asp:Placeholder runat="server" ID="plView" Visible="<%# Convert.ToBoolean(InvoiceID == null) ? false : true %>">
    <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
</asp:Placeholder>


我需要使用CommandName=“ViewInvoice”,否则我的其余代码将无法工作。已保存我的一天并避免打开新问题。谢谢。我需要使用CommandName=“ViewInvoice”,否则我的其余代码将无法工作。节省了我的时间,避免了打开新问题。谢谢。我需要使用CommandName=“ViewInvoice”,否则我的其余代码将无法工作。节省了我的时间,避免了打开新问题。谢谢。我需要使用CommandName=“ViewInvoice”,否则我的其余代码将无法工作。节省了我的时间,避免了打开新问题。非常感谢。