问题标签 [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.

0 投票
1 回答
54690 浏览

asp.net - ASP.Net:动态创建的下拉列表和数据源

我有大约 10 个填充的下拉列表控件。我不想复制/粘贴和修改每个字段,而是以编程方式创建它们。这可以做到吗?

这是其中一个的样子。我想以编程方式添加 10 个下拉列表控件及其各自的 SqlDataSource 控件。

0 投票
2 回答
606 浏览

asp.net - 动态控件、更新面板和事件 - 实现我的结果的最佳方式

一直在拉我的头发并在网上做一些查看,试图找出一个优雅的解决方案来解决我的问题。

我有一个 ProductImages.aspx 页面。它在动态创建的列表中显示与该产品关联的所有图像。事件与每张图片相关联,以便您对其进行更新。

这工作正常。

但是,最后我有一个选项可以让我添加新图像。这是一个触发对 AddImage 方法的调用的按钮。

现在发生的事情是原始控件正在创建并添加到带有事件的页面中。然后如果触发按钮事件,它将重新创建所有现有的图像控件和一个新的。添加这一点,在 OnInit 之后创建的新图像控件没有附加事件,因为事件是在 OnInit 之后添加的。

我可以执行 Response.Redirect 来重新加载页面并触发 OnInit 以再次连接事件,但这似乎非常不雅,并且破坏了使用更新面板的意义。

有任何想法吗?

0 投票
6 回答
2999 浏览

.net - 动态 ASP.net Web 表单

我正在创建一个 ASP.NET 应用程序,其中程序的管理员将能够为用户填写和提交的表单定义自定义字段。

管理员需要定义各种类型的字段,例如复选框、单选按钮、文本框和文本区域供用户填写。管理员还可以定义是否需要这些自定义字段。

我现在正处于计划阶段,想知道如何将这些自定义字段定义存储在数据库中,以及如何将它们呈现出来并使其发挥作用。

编辑

最终用户使用这些动态创建的表单字段提交的表单数据也必须保存在数据库中。

我该如何解决这个问题?

0 投票
5 回答
8588 浏览

c# - 动态控制 C# 上的验证器噩梦

我需要将RequiredFieldValidator 和RegularExpressionValidator 添加到动态生成的tablecell 中的动态创建的文本框中,该文本框位于从Master 创建的页面的内容区域中的Web 用户控件内。

正如您可能猜到的那样,问题在于尝试动态设置 ControlToValidate 属性以查看我动态创建的文本框。

经过一番研究,现在的代码:

  • 创建一个面板(我听说 ControlToValidate 和 Validator 必须在同一个容器中)。这最初是一个占位符,但正在尝试下面列出的建议。
  • 创建文本框并设置其 ID。
  • 将文本框添加到面板。
  • 创建RequiredFieldValidator。
  • 设置 ControlToValidate 的 ID。我尝试使用的值:

    • 控件ID
    • 控件的 ClientID
    • 以服务器附加到 Web 用户控件的子控件的添加文本为前缀的控件 ID
    • 客户端 ID 以相同方式修改
    • 控件的名称(有机会)
    • 以服务器添加到控件名称的文本为前缀的控件名称
    • 使用定制的递归 FindControl 方法尝试将新的 Control 对象转换为 Textbox,然后使用其 ID 和 ClientID
    • 控件的 UniqueID
    • 与上面详述的前缀相同的修改
  • 将验证器添加到面板。
  • 将面板添加到表格单元中。

不用说,我仍然无法说服验证器“看到”它应该验证的控件,而且我完全没有解决问题的新方法。

编辑:进一步的侦探工作使我发现在 page_load 事件完成之前页面没有问题。构建页面的代码执行完毕后,服务器似乎出现了问题。我开始怀疑我是否真的将控件添加到命名容器中太晚了,而不是太早了。

有什么建议么?

0 投票
2 回答
1848 浏览

asp.net - 我的自定义控件加载向导的回发问题

当控件在 init 中加载时发生了一些问题,但它仍然不能帮助我及时触发正确的回发事件。

我正在尝试创建一个丰富的向导控件,该控件将启用切换、带有描述的链接、完全自定义的步骤、子步骤的集成——通过使用避免标准 asp.net 向导加载方式的动态控件加载。

想法是在左侧部分导航,在右侧部分内容,或从右侧部分运行并覆盖整个区域的子步骤。

下载源项目

0 投票
4 回答
13693 浏览

asp.net - 在 ASP.Net 中动态更改用户控件

我正在尝试创建一个网页,该网页将根据下拉列表的选定值显示适当的用户控件。

基本上页面布局是这样的:

下拉选择
< 基于下拉选择创建的用户控件 >

I have it half working... the controls are changing when the selection changes. 在 OnInit() 中,我动态创建最后一个选定的控件(其值保存在会话状态中,因为 ViewState 在 OnInit 中不可用)。

当下拉选择发生变化时,我删除了旧的用户控件,并添加了一个新控件。 问题是:从 selection changed 事件中添加了新控件,我无法在第一次回发时保存用户的更改。第一次回发后,从 OnInit 而不是 Change 事件创建选定的控件,并且从那时起保存状态,直到下一次选择更改。

这是 SelectionChanged 方法:

在 SelectionChanged 发生后用户对新控件所做的任何更改都不会保存在后面的回帖中。但是,随后的回发确实会被保存。此时,控件将在 OnInit() 中创建。

当控件更改时,是否有某种方法可以强制正确的回发和 ViewState?控件更改后是否可以强制重新初始化页面?

0 投票
3 回答
3471 浏览

asp.net - ASP.NET WebControl & Page - 动态添加控件(如 TextBox)

我正在尝试使用文本框创建自定义服务器控件 (WebControl)。

我将 asp.net 文本框添加到 CreateChildControls 覆盖中的自定义控件。在 OnInit 覆盖中,我将事件处理程序添加到 TextBox.TextChanged。

一切正常,除了 TextChanged 永远不会触发。我查看了视图状态,看起来我的文本框从未将其 Text 属性保存在视图状态中。我试图在不同的地方设置文本,包括构造函数,但没有任何效果。

如何将 TextBox 动态添加到 WebControl 以将其 Text 保存在 viewstate 中并触发 TextChanged 事件?

我将不胜感激后面的 WebControl 代码示例,其中 TextBox 被动态添加并被触发 TextChanged 事件。

0 投票
3 回答
4248 浏览

asp.net - 帮助!获取动态控制单选按钮的值!

我正在研究创建一个动态调查,如从动态控件获取用户输入中发布的那样,但使​​用一些不同的环境。

以下是我正在尝试做的事情:

首先,当用户单击按钮时,它将在占位符内填充带有单选按钮的动态表格,用于调查问卷。但是,单击提交按钮后,我无法获得其值(用于分数计算)。所有的动态控制都消失了。除了我正在使用 ajax 扩展(updatePanel)进行开发之外,我一直在研究视图状态,但我不知道它。

有没有人有任何想法?

在这里,我包含了一些我的代码:


创建动态表函数

*v_dtTable 和 v_dtTable2 包含来自数据库的数据

计算分数功能

查看动态生成表的源代码

0 投票
3 回答
732 浏览

asp.net - 如何将自定义值传递给aspx页面上的asp.net控件?

我需要在 ASP.NET 页面中生成以下内容。最好、最简单的方法是什么?

简化示例。因此,对于自定义属性,我需要将包含索引(i)的字符串传递给控件的属性。我可以从代码隐藏中做到这一点,但如果我可以将它保存在 .aspx 文件中,它会更简单、更容易。

本质上,我需要将一个自定义的,而不是预先确定的值传递给 asp.net 控件。

0 投票
2 回答
9383 浏览

c# - 访问由 JavaScript 编辑的隐藏输入值

我在 C# 代码隐藏文件中动态创建了隐藏的输入控件,然后用 JavaScript 填充它们的值。我现在想在 C# 中访问这些变量。

Firebug 显示这些值确实会随着 JavaScript 发生变化,但我在后面的代码中恢复了原始值。任何见解将不胜感激。

JavaScript:

ASPX:

C#: