0

Asp.NetListViewのソースビューにロジックを入力しようとしています。問題は、「If(isItTrue(test))」を実行すると、プログラムが画面にfalseまたはtrueを書き込んでいることです。誰かがこの問題を解決する方法を知っていますか?

   <%# test= Eval("testId")%>
          <%
              If (isItTrue(test)) Then

              %>
           <asp:Button ID="btnTest"  runat="server" Text="Like" />
           <%
           Else
               %>
               <asp:Label runat="server" Text="hello" </asp:Label>

           <%
           End If
               %>
4

2 に答える 2

1

このItemDataBoundような情報を確認し、条件を使用してコントロールを表示または非表示にするために使用できます。コードビハインで次のようなことを試してください:

protected void ListViewTest_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    // if it is data item
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        // call your function
        if (isItTrue("test"))
        {
            // show the button
            e.Item.FindControl("btnTest").Visible = true;
        }
        else 
        {
            // show the label
            e.Item.FindControl("lblTest").Visible = true;
        }
    }
}

リストビューでは、イベントを設定し、プレースホルダーにコントロールを追加して、このようなことを行うことができます

<asp:ListView ID="ListViewTest" DataSourceID="..." OnItemDataBound="ListViewTest_ItemDataBound" runat="server">
    <LayoutTemplate>
      <table>
        <tr>
            <th>Column Name</th>
        </tr>
        <tr runat="server" id="itemPlaceholder" />
      </table>          
    </LayoutTemplate>
    <ItemTemplate>
      <tr style="background-color: #CAEEFF" runat="server">
        <td>
           <%-- both controls are here --%>     
          <asp:Button ID="btnTest" runat="server" Visible="false" Text="Like"></asp:Button>
          <asp:Label ID="lblTest"  runat="server" Visible="false" Text="hello"></asp:Label>
        </td>
      </tr>
    </ItemTemplate>
  </asp:ListView>
于 2012-12-28T17:33:51.917 に答える
0

<%# test= Eval("testId")%>出力に true または false を書き込んでいるのは、この行ではありません か?

于 2012-12-28T17:42:42.840 に答える