繁体   English   中英

如何使用C#获取文档的特定HTML元素并隐藏/显示它们等

[英]How to get at specific HTML elements of a document using C# and Hide them/Show them etc

基本上,我想加载HTML文档并使用诸如多个复选框之类的控件,这些控件将被编程为隐藏,删除或显示具有特定ID的HTML元素。 因此,我想我必须将一个内联CSS属性设置为可见性:在需要隐藏或完全删除它们的那些属性上为false。

我需要这样做,所以我不必一直在Dreamweaver中编辑我的Ebay HTML模板,通常我需要在凌乱的代码中滚动并手动删除或添加标签及其各自的内容。 鉴于我只想在Dreamweaver中创建一个主模板,该模板具有我的产品的所有变体,因为它们都是同一类型,并且在各处都有一些细微的变化,我只需要根据需要启用和禁用这些变体的可见性即可。并复制并粘贴最终的html。

我以前从未使用过Windows Forms,但是我尝试在WebForms中进行此操作,我确实知道一点。 通过将所有HTML元素包装在<asp:PlaceHolder></asp:PlaceHolder> ,然后在选中关联的复选框并发生回发之后,将<asp:PlaceHolder></asp:PlaceHolder>符的可见性设置为false,就可以得到所需的结果。添加一个复选框/按钮控件,以删除所有复选框,包括最终html本身的复选框。 但是这种方法似乎让我非常痛苦,因为我必须在我需要控制的所有内容周围添加占位符标签,因为普通的html元素不在服务器上运行,而且webforms注入了一堆Javascript和ViewState数据,所以我不这样做没有干净的HTML,可以在查看页面源代码后复制它们。

您能建议在对现有HTML文档进行最少更改的情况下达到预期效果的任何技巧/代码吗? 理想情况下,我想将HTML文档加载到其中,对其进行实时设计预览,并在其下面有一堆标记良好的复选框,这些复选框被编程为隐藏,删除或显示具有特定ID的元素。

谢谢...

我认为这将为您工作:

HtmlControl ctl = new HtmlGenericControl( "div" );
ctl.visible = false;

您是否考虑过使用JQuery? 如果要显示/隐藏的元素具有固定的ID,则这可能是一种快速而肮脏的解决方案。

<table runat="server" id="tblMain">
      <tr runat="server" id="tr1">
              <td runat="server" id="tdName">
                 dummy name
              </td>
              <td runat="server" id="tdSurname">
                  dummy surname
              </td>
              ...

您可以使用tdSurname.visible = "false"; tdSurname.Style["Visibility"] = "Hidden";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM