问题标签 [custom-server-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 回答
1719 浏览

c# - ASP.NET 自定义控件和 Page.Request.Form[]

我有一个继承自 System.Web.UI.Control 并包含通用 HTML 控件而不是 asp.net 服务器端控件的控件。我使用 Page.Request.Form[Control_id] 来获取其中一个控件的值。如果我有一个包含这些自定义控件的列的 gridview 并且我添加一个新行 [row6] 然后从第行 [row3] 上方删除一行,则这基本上可以接受,新行中的控件 [row6 变为 row5]假定其正上方的行的值 [row5 变为 row4]。

我相信这是因为我使用 Page.Request.Form[] 来获取每个控件的值,但我的控件不知道这些值属于以前占据同一行的控件。我该如何解决?我会感谢任何建议!

0 投票
1 回答
862 浏览

asp.net - asp.net 自定义服务器控件设计时间支持

我在设计视图中遇到了自定义面板控件的问题。覆盖渲染方法在设计时没有影响。

如果我按如下方式扩展文本框,则设计时会显示 div 标记,然后显示文本框控件。对面板控件进行了同样的尝试,但它没有显示带有此处文本的 div。似乎因为面板是一个容器控件,它在设计视图中的工作方式不同。真令人沮丧。关于如何让我的设计时间以我想要的方式呈现的任何想法?

0 投票
2 回答
1757 浏览

asp.net - 使用自定义 WebControl 作为面板的 DefaultButton

我创建了一个自定义 Web 控件来充当带有图像的按钮。我希望能够将其设置为DefaultButtonASP.NET 面板控件的参数目标。我实现了IButton接口,使用控件加载页面时没有报错。但是,当我在该面板内的文本框中按 Enter 键时,不会引发控件的 Click 事件。当我用标准的 ASP.NET 按钮替换我的控件时,一切正常。

我有一个测试页,其面板包含一个文本框、一个自定义按钮的实例和一个标准的 asp.net 按钮。这些按钮连接到一个事件处理程序,该处理程序会将文本框更改为调用者的 ID。

当面板的 DefaultButton 设置为 ASP.NET 按钮时,在下一个框中按 Enter 可以正常工作 - 页面回发,并且文本框填充了标准按钮的名称。当面板的 DefaultButton 设置为我的按钮时,在文本框中按 Enter 会导致页面回发,但不会触发 Click 事件。手动单击按钮可以正常工作。

有谁知道我必须添加到我的自定义控件以使其处理来自面板控件的事件?我正在寻找在 Button 的源代码中使用 Reflector,但无法确定是什么导致了这种行为。

下面我贴出了控件的源码,以及测试页的相关源码。

控制来源:

调用它的代码:

代码背后:

控件呈现如下:

0 投票
3 回答
2073 浏览

asp.net - asp.net 服务器控制 - 避免添加多个 javascript

我创建了一个派生自 LinkBut​​ton 的 asp.net 服务器控件,并向页面呈现一个小的 javascript 函数。

我想在页面上多次使用此控件,但只想在页面上呈现一次 javascript。另一方面,我宁愿不手动将其添加到 js 文件中,因为我不希望将来有机会忘记添加 js 文件。

这样做的最佳方法是什么?

0 投票
1 回答
302 浏览

c# - 在 ASP.NET 中呈现服务器控件更有效

我正在为我的服务器控件输出整个 HTML,如下所示:

myStringBuilder 是在单独的私有方法中手动构建的 StringBuilder 对象。

这是一种有效的方法吗?还是将 HtmlTextWriter 传递给我的私有方法并多次调用 HtmlTextWriter.Write() 更好?

0 投票
0 回答
600 浏览

asp.net - 使用微软的技巧将 ascx UserControl 变成可重用的服务器控件后出现 NullReferenceException

将网站的 UserControls 转换为可重用的服务器控件,同时保留使用声明性代码的能力的一种据称经过验证的技术使我可以NullReferenceException对在 ASCX 代码中声明的任何控件进行任何引用。

从同一项目调用 ASCX 时,不会出现此问题。

这个想法是完成控件的声明性代码的按需编译(预编译网站)。应用 aspnet_merge 后,名称笨拙的程序集会收到正常名称,但是,如果这第一步不起作用……简而言之,我做了什么:

  1. 创建一个网站,添加一个用户控件,添加一个 Literal 并在代码隐藏中设置其文本。测试一下。
  2. 编译为固定的命名程序集,不可更新
  3. 获取输出 DLL,将它们添加到另一个网站项目并进行测试。

最后一步在我尝试从该控件(即,在我的例子中的 Page_Load 中)访问声明式初始化控件的任何属性时,给了我空引用异常。

PS:Scott Guthrie在这里解释了同样的技术

0 投票
1 回答
217 浏览

asp.net - 如何在自定义验证器中访问文本框属性?

我想构建一个继承自 BaseValidator 的自定义验证器控件。它只会用于我的 asp.net 应用程序中的文本框。如何在自定义验证器中访问文本框本身(读取文本框的属性)?

这是我的 EvaluateIsValid 函数中的内容:

它似乎找不到控件,因此它因空引用异常而中断。我可以用另一种方式做到这一点吗?

谢谢!

0 投票
4 回答
1836 浏览

c# - 对 ASP.NET 论坛控件的建议?

我正在寻找一个论坛服务器端 asp.net 控件,它将集成到我的 asp.net 3.5 站点中。

我在 www.asp.net 的画廊页面上看到了很多,但几乎没有一个有评级,所以很难确定哪些是可靠的,哪些会变成一场噩梦。

建议?欢迎免费和付费组件。

0 投票
1 回答
554 浏览

asp.net - ASP.NET 服务器控件发出服务器端标签

我是编写自定义 ASP.NET 服务器控件的新手,遇到以下问题:

我有一个继承自System.Web.UI.HtmlControls.HtmlGenericControl. 我重写了控件的 Render 方法,使用HtmlTextWriter来发出一些自定义 HTML(基本上是TD带有一些自定义属性的标记),然后调用案例类的 Render 方法。

使用控件:

问题是,当我查看呈现的 HTML 时,服务器标记也会发送到客户端(紧跟在TD标记之后):

我该如何防止这种情况发生?

0 投票
1 回答
120 浏览

c# - Visual Studio 使用 UserControlDesigner 而不是 CustomDesigner

我有一个 ASP-UserControlQuestionWithAnswer (.ascx) : BaseQuestion : UserControl 和一个 ControlDesigner QuestionDesigner : UserControlDesigner。现在我使用 DesignerAttribute 来关联控件和设计器:

所有类型都在同一个程序集中(WEB 应用程序)。但它仍然加载 UserControlDesigner 而不是我的。我必须把我的设计师放在一个单独的组件中吗?我想asp页面设计器找不到设计器。

谢谢!莫


演示代码: