如何使用服务器端代码替换列表项中的控件。我需要替换这个
<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>
答案 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
作为新的LinkButton控件
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;}
...基于您的运行时需求