Итак, вы можете добиться этого поведения. Я предполагаю, что вы просто запрашиваете условную вещь, чтобы заполнить LinkButtons
URL или оставить только текст. Теперь я напишу решение с различными возможностями в соответствии с моим пониманием:
Метод 1
Таким образом, таким образом вы можете проверить, имеет ли ваша граница DataTable
нулевые значения, и если она есть, вы можете просто вернуть пустую строку в свойство PostBackUrl
.
<asp:LinkButton ID="lnkPDF" runat="server" CausesValidation="False" CommandName="Ir" PostBackUrl='<%# Eval("Notes") == DBNull.Value ? "" : "~/" + Eval("Note") %>' Text="Link to Voucher"></asp:LinkButton>
Примечание: если вы используете этот метод, вы все равно будете иметь обратную передачу. А ссылки, которые не были выбраны или были нулевыми, будут по-прежнему иметь соответствующие элементы привязки на веб-страницах, которые ни к чему вас не приведут.
Метод 2
Таким образом, вы можете настроить свойство Visible
элемента. таким образом, вы фактически получите LinkButton
элементы управления, которые не были DBNulls
<asp:LinkButton ID="lnkPDF" runat="server" CausesValidation="False" CommandName="Ir" Visible='<%# Eval("Notes") != DBNull.Value %>' PostBackUrl='<%# Eval("Notes") == DBNull.Value ? "" : "~/" + Eval("Note") %>' Text="Link to Voucher"></asp:LinkButton>
Метод 3
Я рекомендую использовать этот, если вы не очень строгие в отношении серверного элемента управления и хотите, чтобы на экране отображалась «Ссылка на ваучер», и вы не улавливаете этот элемент управления в своем коде позади в событии OnRowCommand
.
<a href='<%# Eval("Notes") == DBNull.Value ? "javascript:void(0)" : "~/" + Eval("Notes") %>'>Link to voucher</a>
Причина: просто и прямо.