asp:PlaceHolder在asp:TableRow中

时间:2012-11-13 22:18:15

标签: asp.net controls

我需要这个asp:TableRow有条件地显示。

<asp:TableRow>
    <asp:TableCell><asp:Label id="ExtraAmountType" runat="server" Width="182px"></asp:Label></asp:TableCell>
    <asp:TableCell Width="10%" HorizontalAlign="Right">$&nbsp;<asp:textbox id="MembershipDues" runat="server" Wrap="False" BackColor="#FFFF80" AutoPostBack="True" Width="31px" MaxLength="3" ontextchanged="MembershipDues_TextChanged"></asp:textbox></asp:TableCell>
</asp:TableRow>

我该怎么做?我把它包裹在

<asp:PlaceHolder ID="memberdues" runat="server"> 

标签,但它抱怨:

错误12 System.Web.UI.WebControls.TableRowCollection必须包含'System.Web.UI.WebControls.TableRow'类型的项目。 'asp:PlaceHolder'的类型为'System.Web.UI.WebControls.PlaceHolder'。

我需要有条件地显示这一行。

我在Page_Load中执行此操作:

memberdues.Visible = false; 
if (DuesInfo.CredentialsAmount > 0)
{
    // do some other stuff to populate the variables in the placeholder then show it
    memberdues.Visible = true; 
}

1 个答案:

答案 0 :(得分:2)

给它一个ID并将其runat设置为server,然后你可以从后面的代码中访问它。

<asp:TableRow runat="server" ID="rowExtraAmountType">

现在它可以从后面的事件中访问:

rowExtraAmountType.Visible = (conditional expression);

编辑:下面显示的是您的问题编辑

<asp:TableRow runat="server" ID="memberdues">

然后是背后的代码:

memberdues.Visible = (DuesInfo.CredentialsAmount > 0);