问题标签 [webusercontrol]
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.
c# - ASP.Net c# - 如何从 App_Code 类中实例化 WebUserControl 的实例?
阿罗哈,
我有一个自定义控件,我需要从一个类中实例化并添加到页面中。我的班级有一个我传递给的函数,Page
因此我可以访问页面上的控件。我正在使用这种方法来添加标准的 ASP 控件,并且它的一切都按预期工作。我的问题是自定义控件的类型是知道定义的吗?
我在这里阅读以将 .cs 从控件移动到 App_Code 文件夹中,但是当我这样做时,它不会编译,因为它看不到 ascx 中的控件有效。例如我得到CS0103: The name 'litTest' does not exist in the current context
. 因此,由于它们是部分类,我在 App_Code 文件夹中创建了一个新的空部分类,并单独保留了控件的 .cs 文件。
好吧,它以这种方式编译,但是当我将控件添加到 Page.controls 集合时,我在页面上看不到任何应该在的位置。例如我添加TEST
到 ascx 文件的底部,我没有在页面上看到它。此外,该控件具有我需要设置的变量,这些变量在使用空分部类时无权访问。
我知道我正在尝试使用标准控件进行操作,为什么我似乎无法使用自定义控件进行此操作?
我在 App_Code 文件夹中的部分类:
我的部分用户控件类:
我的用户控件 ascx:
我的 App_Code 类:
页面输出根本没有 TEST 字样。HELLO 这个词显示得很好。我已经尝试MyClass.doWork()
从 pagesLoad
和回调中调用Init
,PreInit
所有这些都导致了贵妇人的事情。
更新:
正如Minh Nguyen建议的那样,我可以使用它Ctrl.LoadControl("~/Controls/CustomControlClass.ascx");
来加载控件,但我不能将其转换为自己的类型,我必须将其分配为 Control 类型:
这样做可以让我将控件添加到页面并使其按预期工作。不利的一面是我无法访问任何控件属性。为了解决这个问题,我正在这样做:
这行得通,但我不确定它的使用成本有多高。我希望我可以直接施放控件,但尝试时出现错误。
我暂时不回答这个问题,看看是否还有其他选择。
c# - C# ASP.NET GetType() 与 WebUserControl 问题
在项目中,我有一些用于表单元素的自定义 WebUserControl(它们封装了一些标准验证器和其他系统特定功能)。我的用户控件是“DropDownListField”和“TextBoxField”。在页面后面的代码中,我有以下代码:
出于某种原因,即使我单步执行代码并看到“控制”被分配给我的 Web 用户控制,“if”语句也总是返回 false。此代码在项目的另一个位置完全相同,除了在另一个位置使用标准 .net 控件“TextBox”和“DropDownList”,而在另一个位置代码可以工作。
有人知道为什么这不适用于网络用户控件吗?
更新:嗯,所以在调试中我发现了这个:
所以 typeof 只是认识到它们是用户控件,而不是看起来的完整类型。
有人知道我将如何检查特定的用户控件类型吗?
c# - 是否可以像我们在 Winforms 中一样将 WebUserControl.ascx 加载到默认页面中的面板
我有一个默认页面,即 default.aspx 在这个我将有面板。我将有 2 种其他形式,即 Webusercontrol1.ascx 和 Webusercontrol2.ascx 我将设计带有一些控件的页面现在是否可以将此页面加载到默认页面上的面板中,就像我们在 WINFORMS 中所做的那样。
jquery - 创建用户控件
如果我在普通页面(例如 Default.aspx)中使用此代码,它可以正常工作。我想在 UserControl 中使用它。
我怎样才能做到这一点?
asp.net - 如何使用 vb.net 使用单个复选框检查/取消选中所有复选框?
我的 asp.net webusercontrol 中有 11 个 asp.net 复选框。
我希望当复选框1被选中时,所有复选框的其余部分都将被选中,如果复选框未被选中,那么所有复选框的其余部分将被取消选中如果我的所有复选框都在webusercontrol panel1中,该怎么做。
c# - 中继器中的用户控件 - 在中继器 OnItemDataBound 之前调用子 DataBind()
我正在尝试在中继器 (R) 内对用户控件 (B) 进行数据绑定,该中继器本身包含在用户控件 (A) 中。
页面调用 A.DataBind A.OnInit 将方法附加到 R.OnItemDataBound A.DataBind 设置 R.DataSource 并调用 R.DataBind B.DataBind在R.OnItemDataBound 触发之前被调用。
这是一个问题 - 因为我正在设置 B.DataSourceProperties 并从 R.OnItemDataBound 的附加方法调用 B.DataBind。(就像我嵌套中继器时所做的那样)
c# - C# asp.net Button_Click 事件处理程序不起作用
我有一个 webusercontrol,上面有一些控件,比如一些标签、一个文本框,最后是一个按钮。此控件的目的是每次单击 webusercontrol 上的按钮时将其添加到占位符的主页面中。
这是我的 webcontrol 上的按钮背后的代码
触发事件时需要执行的事件处理程序在我的主页中定义,如下所示:
btnCriteriaToevoegen_Click 事件触发,然后调用此方法(addCriteriaButton()),该方法会将按钮添加到我主页的占位符上:
所以当所有这一切都说完了,我运行我的程序时,他将控件添加到我的占位符中,但是当我单击按钮时,他没有向我的占位符添加新控件,只是出于某种原因清除了我的占位符. 通常一切都应该没问题,但我试图看看当你点击按钮时他是否真的触发了事件,而他没有。我试图给你一个我的代码示例,因为整个页面的代码很大,对你没有帮助。任何想法为什么他没有触发按钮事件?
c# - ASP.net 中关于 WebControl 与 UserControl ViewState 的奇怪行为
好的,我已经解决了我的问题,但我不知道为什么一种类型的控制有效而另一种无效。
场景:我正在开发一个自定义向导样式的页面设计,该设计最初完全使用UserControl
C# ASP.Net 4.0 中的 s 完成。您正在查看的步骤是通过控制可见性在服务器端控制的。
我的问题:我不喜欢UserControl
s 并希望WebControl
尽可能多地使用 s,尽管用WebControl
s 重做整个事情并不值得我努力,并且需要新的控件来扩展功能。
我最初的解决方案:我最初根据需要开始创建WebControl
s 。这工作得很好,直到我离开给定的 2 步WebControl
,它失去了它ViewState
。至少我相信这就是发生的事情。这是一个CheckBoxList
,当我离开 2 步时,它就ListItems
消失了。
最终解决方案:重新创建与UserControl
我始终可以访问CheckBoxList
Items
.
这一切似乎都合乎逻辑。如果控件或其父控件之一不可见,则它不会包含在ViewState
数据中。我想真正的问题是,为什么UserControl
有效?
asp.net - 由于用户控件事件,如何在 ASP.Net 页面中重新绑定 GridView
我有一个带有数据网格和用户控件的网页。用户控件有一个网页订阅的事件。在用户控件事件上,我需要重新绑定网页上的数据网格。
由于附加到网格的扩展器控件指示它们在预渲染后无法注册,因此我遇到了各种问题,因此看起来用户控件事件发生在页面生命周期的后期。无论哪种方式,这些有点错误都表明我完全走错了路。
如果可能的话,我不想在用户控件中引用我的页面。
实现这一目标的最佳方法是什么。
我每次都尝试在 PageLoad 上绑定网格,但发现尽管发生了 Databind 并且更新的数据在数据源中,但网格内容并未反映这一点。[这是在玩这个的 GridView 视图状态吗?]
完全刷新或使用页面按钮重新绑定网格允许我显示正确的值。
提前致谢,
利亚姆