2012-12-28 43 views
0

我想在Asp.Net ListView的源视图中输入逻辑。问题在于执行“If(isItTrue(test))”时,程序在屏幕上写入false或true。有谁知道如何解决这个问题?设计视图ListView ASP.NET逻辑

<%# 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 
       %> 
+0

你可以展示你在哪里使用ListView的方法吗? – MethodMan

回答

1

您可以使用ItemDataBound来检查这样的信息并使用您的条件显示或隐藏控件。尝试这样的事情在你的代码behine:

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> 
0

你确定它的不是这一行:<%# test= Eval("testId")%>这是写入真或假的输出?