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 exception...」がスローされます。#インラインコードで使っていないので来ていると思います。しかし、私は方法と場所を知りません。私の懸念は、XPath("NoOfGuests") < 0 のときに 2 つの画像ボタンを表示したくないことですが、パフォーマンスの問題のために 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 に答える