替换<li> </li>中的控件

时间:2012-02-02 19:44:30

标签: c# asp.net

如何使用服务器端代码替换列表项中的控件。我需要替换这个

    <li>
        <asp:LinkButton ID="btnUpload" runat="server" OnPreRender="btn_PreRender" CommandName="Uploader"
            TabIndex="2">Upload</asp:LinkButton>
        or <a target="_blank" href="../PersonalInfo/MailingAddress.htm">Mail</a> the form.
    </li>

    <li>
       <asp:LinkButton ID="hplnkViewDocument" runat="server" Text="View Document" SkinID="lnkBtnBlue"></asp:LinkButton>
    </li>

5 个答案:

答案 0 :(得分:3)

我会在li中同时拥有这两个控件,然后使用Visible属性显示/隐藏您想要的控件。

答案 1 :(得分:1)

我相信你可以把一个pannel或一些服务器端控件作为一个容器。然后,您可以在控件集合中添加或删除您喜欢的任何控件。

让我们说一个你要添加按钮的面板,只是为了给你一个想法:

Button button = new Button ();
//Set properties accordingly
Pannel1.Controls.Add(button);

此外,Controls是Control的一个属性,因此您可以在任何继承Control的类中找到它。甚至页面都继承自继承自控件的类。

答案 2 :(得分:0)

您必须阅读"Page.FindControl Method (String)"

也有一些样本。

答案 3 :(得分:0)

您也可以使用

 Page.Controls.Remove(btnUpload);

然后创建hplnkViewDocument作为新的LinkBut​​ton控件

  Page.Controls.Add(hplnkViewDocument);

答案 4 :(得分:0)

- )

如果你想要超级懒,你可以将它们中的任何一个包装在一个给定类的span中,然后将一些css添加到页面头部(假设它在服务器上运行),其中display:none;可见性:隐藏;对于不应该显示的类

HTML:

<li>
  <span class="one">
    <asp:LinkButton ID="btnUpload" runat="server" OnPreRender="btn_PreRender" CommandName="Uploader" TabIndex="2">Upload</asp:LinkButton>
  or <a target="_blank" href="../PersonalInfo/MailingAddress.htm">Mail</a> the form.
  </span>
  <span class="two">
    <asp:LinkButton ID="hplnkViewDocument" runat="server" Text="View Document" SkinID="lnkBtnBlue"></asp:LinkButton>
  </span>
</li>

确保添加:

.one {display:none; visiblity: hidden;}

...或

.two {display:none; visiblity: hidden;}

...基于您的运行时需求