Asp.net 嵌入Xpath代码和内联服务器标记时出错

Asp.net 嵌入Xpath代码和内联服务器标记时出错,asp.net,databinder,server-tags,Asp.net,Databinder,Server Tags,栅格视图模板字段- <% if ((Convert.ToInt64(XPath("NoOfGuests")) < 0)) { %> <asp:ImageButton ID="imgbtnAddResByList" runat="server" ImageUrl="~/images/btn-addResByList.PNG" /> <

栅格视图模板字段-

<% 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中这样做。还有别的办法吗

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

<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), "}", "") %>


尽管说实话,我认为这是行不通的。

评估每个按钮在这种情况下的可见性是否有效?例如:

<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), "}", "") %>


尽管说实话,我认为这不管用。

如果你加入了异常的其余部分,你更有可能得到帮助。如果你加入了异常的其余部分,你更有可能得到帮助。