问题标签 [dynamic-controls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 如何将函数绑定到动态添加的 ImageButton 的“单击”事件?
我对 Asp.net 完全陌生。
我目前正在处理通过 Visual Basic 编码的 asp.net 页面
在页面上,我有这些基于页面检索的 SQL 数据动态生成的图像按钮。
不幸的是,我无法弄清楚如何将点击功能绑定到这些按钮中的每一个。
[Control Name].onClick = "Function Name()" 用于客户端脚本。
我需要绑定
到动态分配的按钮。
我不知道怎么做。
任何人都可以帮忙吗?
c# - 基于用户回发的动态控制
假设我有一个树视图,其中每个树节点包含一组不同用户控件的 id。当用户点击一个节点时,这些控件应该被加载到页面中。据我了解 ASP 页面生命周期,应在初始化阶段添加动态控件,稍后将触发回发事件。
因此,如果在我需要添加控件之后发生树视图单击事件,如何根据用户回发事件动态添加控件?
编辑:我尝试了 ArronLS 的建议:
我所做的是将节点值添加到会话数组中,并在我执行初始化时使用它来选择要加载到占位符控件的控件的表单元素。在树视图单击事件上,我更新会话数组中的节点,清除占位符中的旧表单元素,并将新的表单元素添加到控件中。当页面再次加载时,它现在应该在初始化时找到节点,因此可以避免视图状态问题。
现在我还没有完全测试这一点,但是还有另一篇类似的帖子讨论了视图状态可能导致的问题。他们提出了一种解决方案,该解决方案在 Init 控件中轮询上下文的 Request[] 部分(在他们的情况下为 Dropbox),手动处理一些回发功能。
我的新问题是如何使用请求数组访问树视图中的选定节点?
c# - 嵌套动态控件,使用自定义事件处理程序
我正在构建一个包含很多动态元素的 WinForm,我认为我在嵌套控件中的父/子关系方面遇到了一些问题。我能找到的所有现有问题似乎都是 WebForms 独有的,它并不完全有用。
我在定制控件方面也遇到了一些麻烦,但这可能是一个相关的问题。
我试图显示一些 PictureBoxes,每个都有一些相关的 NUD。我最初是通过手工制作大量控件来做到这一点的,但现在我想自动化这个过程并在其他地方重用代码。
实际代码比这复杂一点,但这里是 PseudoCode 和实际代码混合的重要部分
希望这很清楚,以防万一它很重要,这里有更多背景。
我有一个非常大的 FlowLayoutPanel,其中包含一些子面板。其中一个子面板是我现在正在研究的领域。(上面称为 panel_book) 该面板是我动态添加带有 PictureBox 和朋友的子面板的内容。
烦人的是,那些 MouseEnter 和 Click 事件没有被触发。完全没有。我之前在运行时添加了事件处理程序,当时控件不是动态的,并且从未遇到过这么多麻烦。我很确定我什至也使用嵌套控件做到了这一点。
最后,我考虑过将最后一个子面板变成它自己的自定义控件,但也遇到了类似的问题。大概找到解决此问题的方法也可以解决该问题,但是如果您知道不会,请您指出正确的方向吗?
谢谢, :)
asp.net - 事件和 ParseControl 的问题
我正在使用 ParseControl 动态添加一个控件(链接按钮),这很好,除非我指定了一个事件处理程序。
如果我使用:
它正确地将控件添加到页面,但单击事件不会触发。相反,如果我在控件集合中找到控件并手动连接事件,它可以正常工作。我已经尝试在 Page_Init 和 Page_Load 中加载,无论哪种方式都是一样的。
有任何想法吗?
编辑:
实际上,我不仅要解析代码中的单个链接按钮,还要解析包括链接按钮、复选框等在内的一堆文本。我想知道这是否与它没有按预期执行有关?
silverlight - 如何阅读动态添加的复选框?
我正在向 silverlight stackpanel 对象动态添加复选框,如下所示:
我如何回读这些控件以检测它们中的哪些被选中。
c# - 使用 C# 添加和删除动态控件 Windows 窗体
我的 Windows 窗体表单中有三个选项卡。根据在 中选择的 RadioButton TabPages[0]
,我在相关的 TabPage 上添加了一些动态控件。如果Button_Click
添加了控件,但问题是我无法从另一个(不相关的)TabPage 中删除动态添加的控件。
这是我的代码:
我在哪里犯了这个错误?
asp.net - 将 ID 存储在 ASP.NET 控件 ID 中是否安全?
我在我的 ASP.NET 页面中自动生成一个表单。这已经过测试和工作。我想知道是否:
如果将数据库 ID 作为我的控件 ID 的一部分存储有任何安全问题?我可以想到 2 个问题: id 将在页面源中可见(在这种情况下并不重要),以及有人可能以某种方式更改控件的名称?这第二种可能性更为严重。这是一个潜在的问题吗?如何消除它?
如果有更好的方法将唯一数据与任何类型的控件相关联?是否可以在控件的视图状态中存储自定义项?
c# - 添加动态控件
我有一个页面,我需要根据用户在页面上的表单上所做的选择来构建一个页面,然后它会显示一组不同的问题供他们回答。
假设用户在页面编辑的表单中选择了原因 A,那么它需要在页面编辑确认中显示问题 1 和 2。但如果他们选择原因 B,则需要显示问题 3 和 4。
我正在从查询字符串中获取原因代码并设置了一个 switch 语句,但我无法找到如何输出不同控件的任何地方。如果应该显示问题 1 和 2,则一个可能是文本框,另一个是复选框,但如果应该显示问题 3 和 4,则可能需要一个下拉列表和一个复选框。
编辑:我将尝试以下一些建议,并将回来标记答案并相应地投票。谢谢大家的快速回复。
编辑 编辑:rlb.usa 和 AndrewVos 的答案同样有效。我选择了 Andrew,因为这似乎是更“正确”的做法。
asp.net - 是什么阻止用户向 ASP.NET 页面客户端添加控件?
这又回到了我认为已经足够回答的另一个问题,但经过反思我不确定它是(对不起)。
背景资料:
我正在动态生成一个表单。我从数据库中提取控件。
我必须将每个控件与不是用户会话 ID 的数据库 ID 相关联。我目前通过将我的 ID 与其他一些东西一起存储在 Web 控件的 ID 中来做到这一点,以使其唯一/清楚我在做什么。
在回帖中,我遍历网页上的所有控件,检查我的特殊标识符,即 MyGeneratedTextBox_ID_Unique。此过程支持 2 个重要步骤,识别控件是我生成的控件,并获取此输入字段的 ID。
而且,所有这些都有效,但我仍然担心它的安全性。在这种情况下,我没有看到显示实际数据库 ID 的安全问题,尽管我同意这是不可取的。但是,我担心以下可能性:
如果用户可以向我的集合添加恶意控件并将其用于 SQL 注入攻击。
更具学术性,但如果用户可以通过更改 id 以某种方式存储他们无权访问的字段的数据。
我同意这是一种“破解”方式。但我的问题是,这是否存在安全风险,是否有一种“简单”的方式来减少黑客攻击?
我假设只有在页面上创建/实例化的控件才会添加到控件列表中。因此,所有控件都必须在服务器端创建,因此安全问题已得到解决,但只是想验证。再次感谢。
PS:我可以看到为每个控件添加一个属性并加密视图状态会更安全一些。
asp.net-2.0 - 在 Page_Init 之后从事件中动态添加控件
可能看起来像一个愚蠢的标题,因为如果你想维护,你不应该在 Page_Init 之后添加动态控件ViewState
,但我想不出更好的方法来解释这个问题。
我有一个类似于以下的类:
CustomRender
是一个实现 ITemplate 的抽象类,我用它来自包含我正在编写的 CustomForms 模块。
在包含Page_Init
的页面上WebCustomForm
,我通过将相关 ID 传递给控件来初始化控件。然后在当前活动的控件上调用 Instantiate的重写OnInit
方法:WebCustomForm
CustomRender
问题是我的控件CustomRender
需要能够更改. 但是当在 CustomRender 上触发的事件触发时,Page_Init 事件显然已经消失了。所以,我的问题是,如何从其中动态添加的控件中更改其内容?CustomRender
WebCustomForm
WebCustomForm
在我看来,我有三个选择:
- 我将
CustomRender
控件分离到它们自己的独立控件中,基本上每个控件都有一个 aspx 页面,并自己处理页面上的事件(尽管我希望只是制作一个我放在页面上并忘记的控件) - 我不使用事件,只是继续请求当前页面,但使用不同的请求参数
- 我回到绘图板上,提出任何人都可以给我的更好建议。