我有以下 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)是我自己创建的,只是为了在每一行上包含文本“查看”,单击时会显示 PDF 发票。
我不确定这是否可能,但我想知道是否可以为该列或其他内容添加某种验证,以便如果“InvoiceID”列为空,则相应的“查看”链接行不会出现。
通过在 Visual Studio 中进行拆分视图,然后在 GridView 任务上单击“编辑列”按钮,我感觉接近做到这一点,但就像我说的那样,我不确定是否可以这样做,可能不得不简单地诉诸编码它。
谢谢你的帮助!