问题标签 [web-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 回答
567 浏览

c# - 使用脚本块将 Web 控件动态添加到 .aspx 页面

我正在尝试将图表控件添加到我的 .aspx 页面,但出现以下错误:

无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>)。

使用此代码:

aspx 页面本身在我的代码后面有两个 <%...%> 块调用方法。

<body> <div id="portletContent" runat="server"> <%=Render()%> </div> </body>以前有没有人解决过这个问题?我可以采取另一种方法来解决这个问题。我基本上需要将这个控件注入到这个页面中,并在正确的地方内联运行 Render() 方法

0 投票
3 回答
1229 浏览

c# - 扩展 ASP.NET WebControls:如何有效地隐藏公共属性

我将 TextBox WebControl 扩展为一种“DateTextBox”,它DateValue在代码隐藏中将其值作为属性 () 公开:

鉴于此控件仅应与日期一起使用,因此没有理由Text从其父级继承该属性。

有什么办法可以隐藏它吗?.. 除了实现 a NotImplementedException,像这样:

0 投票
2 回答
4433 浏览

c# - WebControl 和 CompositeControl 之间的区别?

我一直在网上寻找一些关于该主题的文章,但我仍然无法弄清楚它们之间的区别。我有下面显示的代码,如果我从 CompositeControl 继承它可以完美地工作,但如果我从 WebControl 继承则不能。(它们都呈现代码,但只有 CompositeControl 处理事件)

因此,当我单击按钮并将控件呈现为 WebControl 时,什么也没有发生。但是,如果我将 WebControl 更改为 CompositeControl,则会打印出文本。为什么?WebControl 和 CompositeControl 有什么区别?

0 投票
2 回答
248 浏览

c# - 构建自己的 Web 控件

好吧,这是一个新手问题,但我认为很多人对此都有疑问。

我正在开发 Windows/Web 应用程序以获取乐趣,并将它们安装在朋友的地方。我的大部分开发都集中在 CRM 系统上,但是我在以更好、更有效和更轻松的方式显示来自 DB 的数据方面存在很大问题。

使用 Microsoft 内置的 Web 控件是一种不错且简单的方法,但它并不能满足我的需求,更糟糕的是,它不如优秀软件和网站中的其他 Web 控件有效(谷歌(笑))。

我想构建自己的控件(GridView 等...)。所以我的问题是我自己怎么能做到这一点?

Microsoft 如何为 Web 和 Windows 窗体开发构建 Web 控件?

谢谢!

阿米特

0 投票
2 回答
102 浏览

.net - 在单个解决方案中开发和使用自定义 ASP.NET Web 控件

我有一个网站解决方案,还有一个类库,其中包含一个从 WebControl 类继承的控件。当我将控件放在工具箱中并在网站中使用它时,我无法再构建解决方案 - Visual Studio(编译器)抱怨类库 DLL 被另一个进程(我怀疑是 VS 本身)使用。

有没有办法在单个解决方案中开发和使用自定义 ASP.NET Web 控件?或者我在这里错过了什么?

0 投票
4 回答
10956 浏览

asp.net - WebControl 创建中的 Render 和 RenderControl 有什么区别?

我最近学会了编写自己的 WebControls,但我仍然对 Render 和 RenderControl 之间的区别感到模糊。我开始使用 Render,但在某些时候我开始使用 RenderControl,我现在只使用它。如果我正在养成一个坏习惯,我想在我确定自己的方式之前把它扼杀在萌芽状态。

0 投票
1 回答
490 浏览

.net - Web 控件生命周期问题:一个页面、一个网格和一个对话框(包含一个动态控件,其类型取决于网格中的选定行)

我有一个带有 GridView 的网页。GridView 包含 Question 对象的列表。每个问题都有一个 QuestionType。当用户单击 Question 控件时,会出现一个 Ajax 模式弹出窗口,其中包含一个 Dialog 自定义 Web 控件。Dialog Web 控件旨在将子自定义 Web 控件与 OK 和 Cancel 按钮一起封装。在这种情况下,子控件是一个代表所选问题的问题自定义控件。在单击 GridView 中的一行之前,不知道 Question 控件的确切类型。

总结页面层次结构:

  • 包含问题的 GridView(在 .aspx 标记中声明,单击行时触发事件)
  • 链接到 AJAX 模式弹出扩展器的面板(在 .aspx 标记中声明)
  • 对话框控件(在 .aspx 标记中声明)
  • 问题控件(在 Dialog 控件中动态创建,在选择问题之前类型未知)
  • 确定按钮(在 Dialog 控件中动态创建)
  • 取消按钮(在 Dialog 控件中动态创建)

当用户单击对话框中的确定按钮时,我希望能够从包含页面获取对话框的内容。(在各种 Question 控件中有验证答案的代码,在 Dialog 中有一个将答案公开给包含页面的属性。)

我在让它发挥作用方面遇到了很多麻烦。

我已经在谷歌上搜索了几个小时,所有关于自定义 Web 控件的文章都指出您需要在 OnInit 覆盖中创建子控件。但是,在我的场景中,在 GridView 触发其行​​单击事件之前调用了 Dialog OnInit 方法,这意味着我无法创建 Question 控件,因为我不知道目标类型。

如果我将创建它的代码移动到对话框生命周期的稍后时间点,例如 RenderContents,我至少可以让它显示动态问题控件。但是,根据所有文章,这是不正确的并且无论如何都没用,因为当单击对话框中的确定按钮时控件仍然不可用(因为对话框被隐藏并且永远不会调用 RenderContents)。

所以,我在这里问 ASP.NET 的人应该如何做到这一点?我不是在寻找代码;只是策略。设置它的正确方法是什么?目标是一个对话框,其中包含一个动态创建的控件,其类型取决于 GirdView 中选定的行,并且可以在回发后由包含页面访问。

任何提示将非常感谢。

更新

我添加了日志记录,单击网格后触发的事件顺序如下:

  • 寻呼机
  • 对话器
  • 对话框 OnInit
  • 页面初始化
  • 页面 CreateChildControls
  • 对话框 CreateChildControls
  • 页面加载
  • 对话框加载
  • Page OnContactorComplianceQuestionSelected
  • 对话框渲染内容

我只知道在 Page OnContactorComplianceQuestionSelected 之后 Dialog 应该包含什么类型的控件。

0 投票
3 回答
896 浏览

asp.net - 禁用子控件的视图状态加载

我有很多在 ASP.NET 页面中动态创建的 Web 控件。在某些回发场景中(当我单击链接按钮时),我想跳过加载旧的 Web 控件树并立即生成新树。不幸的是,当我生成新树时,旧树的视图状态被加载到其中。

我希望能够针对这个特定场景禁用视图状态加载过程,但是在加载新树后,视图状态应该可以正常工作。

通过覆盖 Web 控件的 LoadViewState 方法,我已经解决了部分问题,但不幸的是,这会禁用特定于控件的视图状态,而不是针对他的孩子(文本框、按钮等)。

可能吗?

谢谢你。

0 投票
1 回答
1646 浏览

asp.net - ASP.NET WebControl 和呈现包含子项

我正在寻找一个可以在其中容纳标记的 WebControl,并自己动态创建子控件。我遇到的问题是我不能(还)将标记中的控件(参见下面的示例)与我创建的子控件分开。

我知道我需要使用以下 2 个标志设置课程:

示例标记如下所示:

RenderContents()中,我需要将一些控件添加到控件树中,进行渲染,然后在特定部分中渲染包装在标记中的控件。例如:

如前所述,我可以通过调用RenderChildren()使我的代码创建的控件呈现两次,或者通过删除该行使包装的控件根本不呈现。该死。

想法?

0 投票
3 回答
2304 浏览

c# - ASP.NET - 动态添加的按钮包含额外的值属性

所以,我试图动态地向网站添加一个按钮,让用户了解他们正在向表单添加什么。但是,当它呈现一个新按钮时,它一直将 value 属性提供为 "" 并忽略我添加的属性。我试图解决这个问题无济于事,包括在添加我的版本之前删除 value 属性并清除所有属性。

我知道循环正在触发,并且第 2 行中返回的值是一行,“value=submit”。事实上,标记是这样产生的:

我确定这是第一个导致它为空的 [value=''] ,但是我该如何覆盖这种行为?(您可以在生成按钮的 switch 语句中看到我尝试过早删除 value 键)