TD可见问题

时间:2013-12-23 06:43:42

标签: c# asp.net html-table visible

我浏览过已经回答过这个主题的不同案例,但没有找到回答我问题的案例:

<asp:ListView ID="lstView_phoneUsersExtensionsFound" runat="server" OnItemDataBound="lstView_phoneUsersExtensionsFound_ItemDataBound">
  <LayoutTemplate>
    <table id="tbl1" runat="server" class="bordered">
      <tr id="tr1" runat="server">
        <th id="th1" runat="server" visible='<%# selectOptionVisible %>' >Select</th>
        <th id="th1" runat="server">UserID</th>
        <th id="th2" runat="server">Firstname</th>
        <th id="th3" runat="server">Lastname</th>
      </tr>
        <tr id="ItemPlaceholder" runat="server">  
      </tr>            
    </table>
  </LayoutTemplate>
  <ItemTemplate>
    <tr>
       <td runat="server" visible='<%# selectOptionVisible %>' >
         <input type="radio" name="rdbutton_userSelection" value='<%# Eval("uuid") %>' />
         <asp:HiddenField runat="server" ID="hdfield_userID" Value='<%# Eval("uuid")%>' />
       </td>
       <td><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# String.Format("~/Users/DisplayUserDetails.aspx?selectedCCMUserID={0}&uuid={1}",Eval("userID"),Eval("uuid"))%>'><%# Eval("userID")%></asp:HyperLink></td>
       <td><%# Eval("firstname")%></td>
       <td><%# Eval("lastname")%></td>
     </tr>
   </ItemTemplate>
 <EmptyDataTemplate></EmptyDataTemplate></asp:ListView>

转发器layouttemplate标头不考虑可见值,但不同的项目运行良好,并在需要时隐藏单元格。 我想继续使用aspx函数,如果可能的话不要通过javascript或CSS。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个......

<th id="th1" runat="server" visible='<%# Eval("selectOptionVisible") %>'>

问题在于可见='&lt;%# selectOptionVisible %&gt;'

相反,我将其更改为visible ='&lt;%# Eval(“selectOptionVisible”)%&gt;'

确保您的数据源包含 selectOptionVisible

注意

隐藏列标题,即&lt; th&gt;,

  1. 在页面加载时将“selectOptionVisible”加载到代码后面的变量中。

  2. 而不是'&lt;%#Eval(“selectOptionVisible”)%&gt;'

    现在您可以使用'&lt;%# selectOptionVisibleVariable %&gt;'。

  3. 在将数据加载到ListView之前设置selectOptionVisibleVariable的值。

答案 1 :(得分:0)

以下代码可以解决问题,但我确信应该有更好的方法。

  protected void lstView_phoneUsersExtensionsFound_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    HtmlTableCell th_selectColumn = (HtmlTableCell)lstView_phoneUsersExtensionsFound.FindControl("th1");
    th_selectColumn.Visible = selectOptionVisible;

}