2

网格视图模板字段 -

<% if ((Convert.ToInt64(XPath("NoOfGuests")) < 0))
      { %>
      <asp:ImageButton ID="imgbtnAddResByList" 
                       runat="server" 
                       ImageUrl="~/images/btn-addResByList.PNG" />
      <asp:ImageButton ID="imgbtnCloseResByList" 
                       runat="server" 
                       ImageUrl="~/images/imgdelete.jpg" />
    <%} %>

这会引发运行时错误“Databinder 异常...”。我认为它即将到来,因为我还没有使用#内联代码。但我不知道如何以及在哪里。我担心的是我不想在 XPath("NoOfGuests") < 0 时显示两个图像按钮,但由于性能问题我不想在 OnDataBound 或 OnRowCreated 中执行此操作。有没有别的办法??

4

1 回答 1

0

在条件下评估每个按钮的可见性是否有效?例如:

<asp:ImageButton ID="imgbtnAddResByList" runat="server" 
  ImageUrl="~/images/btn-addResByList.PNG"
  Visible='<%# If((Convert.ToInt64(XPath("NoOfGuests")) < 0), "False", "True") %>' />
<asp:ImageButton ID="imgbtnCloseResByList" runat="server" 
  ImageUrl="~/images/imgdelete.jpg"
  Visible='<%# If((Convert.ToInt64(XPath("NoOfGuests")) < 0), "False", "True") %>' />

此外,您似乎还没有为您的 If 语句指定条件,因此如果您想坚持现有的条件,您可以尝试以下操作:

<%# If((Convert.ToInt64(XPath("NoOfGuests")) < 0), "{", "") %>
  <asp:ImageButton ID="imgbtnAddResByList" 
                   runat="server" 
                   ImageUrl="~/images/btn-addResByList.PNG" />
  <asp:ImageButton ID="imgbtnCloseResByList" 
                   runat="server" 
                   ImageUrl="~/images/imgdelete.jpg" />
<%# If((Convert.ToInt64(XPath("NoOfGuests")) < 0), "}", "") %>

虽然老实说,我认为这不会奏效。

于 2011-05-04T13:27:20.943 回答