嗨,stackoverflow成员们。
简而言之..我的程序运行良好..只是我不确定在满足条件时如何隐藏templatefield。我有以下观点:
<asp:GridView ID="gv" runat="server" DataKeyNames="ID" AutoGenerateColumns="false" AllowPaging="false" CssClass="table table-striped table-bordered table-hover table-checkable dataTable no-footer" EmptyDataText="No bookings found." OnRowDataBound="gv_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Locker Booking ID" DataField="ID" ItemStyle-Font-Size="12px" ItemStyle-Width="100px" ItemStyle-Wrap="false" />
<asp:BoundField HeaderText="Booking ID" DataField="BookingID" ItemStyle-Font-Size="12px" ItemStyle-Width="100px" ItemStyle-Wrap="false" />
<asp:BoundField HeaderText="Booking PIC" DataField="Name" ItemStyle-Font-Size="12px"/>
<asp:BoundField HeaderText="Locker Interval" DataField="Interval" ItemStyle-Font-Size="12px" />
<asp:BoundField HeaderText="Date Created" DataField="DateCreated" DataFormatString="{0:dd-MMM-yyyy HH:mm}" ItemStyle-Font-Size="12px" />
<asp:TemplateField HeaderText="Locker #" ItemStyle-Wrap="true" ItemStyle-HorizontalAlign="Center" ItemStyle-Font-Size="12px">
<ItemTemplate>
<asp:Label runat="server" ID="lbLocker"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Check-In Date" DataField="DateCheckIn" DataFormatString="{0:dd-MMM-yyyy HH:mm}" ItemStyle-Font-Size="12px"/>
<asp:BoundField HeaderText="Check-Out Date" DataField="DateCheckOut" DataFormatString="{0:dd-MMM-yyyy HH:mm}" ItemStyle-Font-Size="12px" />
<asp:BoundField HeaderText="Total" DataField="TotalAmount" DataFormatString="{0:0.00}" ItemStyle-Font-Size="12px" />
<asp:TemplateField HeaderText="Locker Actions">
<ItemTemplate>
<a href='<%# "LockerDetails.aspx?id=" + Eval("ID").ToString() %>' class="btn dark btn-sm btn-outline sbold uppercase" onclick="showPreloader()">
<i class="fa fa-share"></i> View
</a>
<asp:HyperLink runat="server" ID="lnkInvoice" CssClass="btn dark btn-sm btn-outline sbold uppercase" Target="_blank" NavigateUrl='<%# Convert.ToDateTime(Eval("DateCheckOut")) >= new DateTime(2018, 9, 1) ? "LockerInvoice.aspx?id=" + Eval("ID").ToString() : "LockerSlip.aspx?id=" + Eval("ID").ToString() %>'><i class="fa fa-share"></i> Invoice </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Booking Actions">
<ItemTemplate>
<a href='<%# "BookingDetails.aspx?id=" + Eval("BookingID").ToString() %>' class="btn dark btn-sm btn-outline sbold uppercase" onclick="showPreloader()">
<i class="fa fa-share"></i> View
</a>
<asp:HyperLink runat="server" ID="lnkInvoice" CssClass="btn dark btn-sm btn-outline sbold uppercase" Target="_blank" NavigateUrl='<%# Convert.ToDateTime(Eval("DateCheckOut")) >= new DateTime(2018, 9, 1) ? "BookingInvoice.aspx?id=" + Eval("BookingID").ToString() : "BookingSlip.aspx?id=" + Eval("BookingID").ToString() %>'><i class="fa fa-share"></i> Invoice </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
您注意到,这里有2个“操作”列。我试图仅显示1个“操作”列。 条件是..如果BookingID不为NULL ..我想隐藏Locker Actions,但是如果它为null ..然后隐藏Bookings Actions 或者是否还有其他方法可以检查和分配标签。。谢谢