【问题标题】:Adding a ASP Control to page from Code Behind within InnerHTML从 InnerHTML 中的代码隐藏向页面添加 ASP 控件
【发布时间】:2013-12-01 22:10:15
【问题描述】:

我正在尝试从后面的代码向网页添加一个按钮。我的主页上有一个空 div,需要时可以打开和关闭。但是,我希望动态创建的内容,因为 div 内容可以根据条件而变化。

我意识到在我的 ASP 控件中我使用了 /(反斜杠)来取消我的 HTML。我现在遇到的问题是了解如何使用代码解决这个问题,有没有办法将 ASP 控件添加到网页?我愿意接受 InnerHtml 之外的建议。

我正在像这样创建我的按钮(在我的代码后面):

      string buttonout = string.Format("<asp:Button ID=\"helpButton_0\" CommandArgument=\"0\" CssClass=\"HelpButton\" runat=\"server\" Text=\"?\"/>");
      innercontent[0] = string.Format("<table><tr><td>Lead Passenger Information</td></tr><tr><td>Here by deafaul we used your detaisl from your profile, if you're not the lead passenger (As in you're booking for someone else) then please change details.</td></tr><tr><td>{0}</td></tr></table>"+ buttonout);

如上所述,我认为这不起作用的原因是 InnerHtml 讨厌反斜杠。

我确实有办法解决这个问题;那就是向页面添加更多的 div。

        <div id="HelpBoxDiv" runat="server" Visible="false">
            <div id="HelpBoxDiv_Top" runat="server" Visible="true">
            </div>
            <div id="HelpBoxDiv_Bottom" runat="server" Visible="true">
                <asp:Button ID="button_HelpBox_false" runat="server" />
            </div>
        </div>

然后我会将我的 Innerhtml 添加到 _Top Div,而不是我现在正在做的 HelpBoxDiv。然而,这个解决方案并没有教给我任何东西。

我很犹豫在这里问问题,因为我知道已经问了很多问题,而且我相信这个问题以前也有,但我没有找到解决方案。非常感谢任何帮助。

谢谢。

【问题讨论】:

  • 我讨厌人们只链接我的 MSDN 文章,但这些对于您需要做的事情应该非常有用。您可以通过编程方式创建在设计时可用的每个控件。这些链接应该向您展示如何操作,而不是在 HTML 标记中插入 HTML 字符串。 msdn.microsoft.com/en-us/library/kyt0fzt1(v=vs.110).aspxmsdn.microsoft.com/en-us/library/…
  • 我真的不介意,您的评论无疑会让我找到更清洁的解决方案。
  • 如果您有任何问题,请发表评论,我稍后会尝试回复此问题,目前正在工作:)

标签: c# html asp.net controls innerhtml


【解决方案1】:

我意识到在我的 ASP 控件中我使用了 /(反斜杠) 取消了我的 HTML。我现在遇到的问题是了解我如何能够 用代码解决这个问题,有没有办法将 ASP 控件添加到 网页?我愿意接受 InnerHtml 之外的建议。

您不能像文字字符串那样添加 ASP.Net 服务器控件。

相反,您希望将动态服务器控件添加到以下方法 -

ASPX

<asp:PlaceHolder runat="server" ID="PlaceHolder1"></asp:PlaceHolder>

代码隐藏

protected void Page_Init(object sender, EventArgs e)
{
    var button = new Button
    {
        ID = "helpButton_0",
        CommandArgument = "0",
        CssClass = "HelpButton",
        Text = "?"
    };
    button.Command += button_Command;
    PlaceHolder1.Controls.Add(button);
}

private void button_Command(object sender, CommandEventArgs e)
{
    // Handle dynamic button's command event.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多