如何在 C# 中动态创建 DIV,向其添加子元素,然后隐藏 DIV(及其上的所有内容)

本文关键字:DIV 隐藏 然后 动态 创建 添加 元素 | 更新日期: 2023-09-27 17:57:01

我找到了一种方法来剥这只猫的皮,这导致了这种情况,但我想知道是否最好将所有"可滑动"元素放在div 上,然后向上滑动那个div?

更具体地说,我正在 C# 中为 SharePoint 网页/Web 部件动态创建控件。我有条件地需要隐藏或向上滑动元素的"部分"。

理论上(我认为),我可以像这样创建一个 DIV(面板)(在 C# 中,在我的 *.ascx.cs 文件中):

Panel panelSec2 = new Panel(); // DIV
panelSec2.ID = "panelSection2";

。然后立即创建控件,如下所示:

boxRequesterName = new TextBox
{
    CssClass = "dplatypus-webform-field-input"
};

。然后将这些控件添加到 DIV/面板:

panelSec2.Controls.Add(boxRequesterName);
. . .

通过这种方式(大概/理论上),我可以像在相应的 *.ascx 文件中的 jQuery 中一样隐藏/向上滑动面板:

$(document).on("change", '[id$=ckbxPaymentForSelf]', function () {
    if (this.checked) {
        var $panelSection2 = $('[id$=panelSection2]');
        $(panelSection2).slideUp();
    }
});

。并且不必担心指定单个控件进行隐藏/滑动。

我说的对吗?还是我的理论有问题?

如何在 C# 中动态创建 DIV,向其添加子元素,然后隐藏 DIV(及其上的所有内容)

你能想到你的逻辑没有错。

不过,在JS端可能会使事情变得简单一些的一件事是将ClientIDMode设置为静态。然后,您可以使用更直接的'#ControlID'语法,而不是以现在的语法结尾的属性。您还可以将 if 语句中的两行组合在一起以$('[id$=panelSection2]').slideUp()