【问题标题】:creating html div in c#在 C# 中创建 html div
【发布时间】:2014-03-07 00:13:54
【问题描述】:

我正在使用以下代码在c#中制作一个html div

System.Web.UI.HtmlControls.HtmlGenericControl dynDiv =
        new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
            dynDiv.ID = "dynDivCode";
            dynDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Gray");
            dynDiv.Style.Add(HtmlTextWriterStyle.Height, "20px");
            dynDiv.Style.Add(HtmlTextWriterStyle.Width, "300px");
            dynDiv.InnerHtml = "I was created using Code Behind";

            this.Controls.Add(dynDiv);

但这并没有做任何事情,事实上它在最后一行给出了一个错误,即 dynDiv 不是一个有效的参数。 我这里想用div来模拟缓存行和字在缓存中的位置。请告诉我怎么做

【问题讨论】:

  • 在您的 cmets 中,您说您使用的是 WinForms,而不是 ASP。您不能将 HTML 或 ASP.Net 控件与 WinForms 结合使用。您可以使用面板。

标签: c# asp.net memory html


【解决方案1】:

您可以将 html 嵌入到文字控件中。

this.Controls.Add(new LiteralControl("<div style='color: gray; height: 20px; width: 300px;'>I was created using Code Behind</div>"));

【讨论】:

  • Scartag 我用过这段代码 this.Controls.Add(new LiteralControl(""));但它给出了一个错误,即无效参数,是否有使用此代码所需的任何命名空间
  • @HanyaIdrees 不,没有要添加的命名空间 .. LiteralControl 在 System.Web.UI 命名空间内。
  • 我用 C# 编码,而不是用 aspx
  • @HanyaIdrees 如果您不使用 asp.net,那么您将不会使用代码隐藏...这就是您遇到问题的原因......在 asp.net 代码隐藏中提供了 Controls 属性.
  • 那我现在该怎么办...拜托了
【解决方案2】:

使用文字控制

HTML (示例)

<asp:Panel ID="panel" runat="server"> </asp:Panel>

C#

//并根据需要创建样式

panel.Controls.Add(new LiteralControl("<div style='color: gray; height: 20px; width: 300px;'>I was created using Code Behind</div>"));

【讨论】:

  • this.Controls.Add(new LiteralControl(""));我已经使用了您提供的这种语法,但这给出了一个无效参数的错误。使用此控件是否需要命名空间
  • 我正在使用一个拆分容器,我在其上添加了控件 literalcontrol 但这也给出了相同的错误 splitContainer1.Panel2.Controls.Add(new LiteralControl("
    ") );
  • 所以你要使用的不是这个。您不能将 div 放在拆分容器中,我们提供的这段代码是针对 asp.net 的。
  • 也许你想要使用的是面板而不是 div
【解决方案3】:

也许这会有所帮助: Adding panels to SplitContainer in Windows Forms

    Panel panel = new Panel();
    Label lbl = new Label();
    public Form1()
    {
        InitializeComponent(); 
        panel.BackColor = Color.Gray;
        panel.Height = 20;
        panel.Width = 300;
        lbl.Text = "I was created using Code Behind";
        panel.Controls.Add(lbl);

        dynDiv.Panel1.Controls.Add(panel);
    }

你说的就是你想要的

【讨论】:

    【解决方案4】:

    我按照 Diogo Severiano 说的做了,而且效果很好。

    在我的情况下,我需要向 div 添加控件,但我不能使用文字控件,因为智能感知标记:“无法将控件添加到文字控件”。

    如果是这样,就照他做的。

    Label lblParaname = new Label(); lblParaname.Text = Record.Parameter_Name + ": "; lblParaname.ID = "lbl" + Record.Parameter_Name; lblParaname.EnableViewState = true; lblParaname.Attributes.Add("cssclass", "grid_3 alpha omega"); Panel pLblContainer = new Panel(); pLblContainer.CssClass = "grid_3"; pLblContainer.Controls.Add(lblParaname); pSubsPar.Controls.Add(pLblContainer);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 2016-07-28
      • 2017-08-11
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      相关资源
      最近更新 更多