0

次の 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」列が空白の場合、対応する「表示」リンク行が表示されません。

Visual Studio で分割ビューを表示してから、GridView タスクの [列の編集] ボタンをクリックすることで、これを行うことに近いと感じましたが、私が言ったように、この方法でそれを行うことが可能かどうかはわかりません。それをコーディングします。

助けてくれてありがとう!

4

2 に答える 2

3

a の<TemplateField>代わりに a を使用する<ButtonField>

 <asp:TemplateField>
     <ItemTemplate>
         <asp:Button runat="server" Text="View" 
         Visible='<%# Eval("IsEmpty(InvoiceID)") %>' CommandName="ViewInvoice" />
     </ItemTemplate>
 </asp:TemplateField>

そして、あなたのページにメソッドを追加するIsEmpty(string id)か、あなたのIDが何であれ、最初に空かどうかを確認してください。

CommandArgumentButton に属性を追加して、その引数が何であるかを指定することもできます。

于 2013-11-01T14:51:00.760 に答える
0

プレースホルダを使用...

<asp:Placeholder runat="server" ID="plView" Visible="<%# Convert.ToBoolean(InvoiceID == null) ? false : true %>">
    <asp:ButtonField CommandName="ViewInvoice"  HeaderText=" " ShowHeader="True" Text="View" />
</asp:Placeholder>
于 2013-11-01T14:53:08.010 に答える