问题标签 [itemplate]
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# - 使用自定义 LayoutTemplate 时不呈现 ID“itemPlaceholder”
我创建了一个简单的 ASPX 页面,向页面添加了 ListView 控件并创建了 ITemplate 的两个实现;一个用于 LayoutTemplate,一个用于 ItemTemplate。这里的诀窍是我指定了我想在 ListView 中显示的列的集合,并将该集合作为参数提供给我的 LayoutTemplate 类。这是整个代码(在“LoadDataSource”中对“Columns.Skip(1)”的调用只是为了验证我可以使用任意数量的列呈现 ListView):
查看具有不同列数的 ListView 没有问题,但是每当我单击标题中的链接时,我都会收到此服务器错误,而不是 MethodNotImplemented:
必须在 ListView 'MyListView' 上指定项目占位符...
我认为答案很简单,但我就是找不到原因。有没有人有什么建议?
asp.net - 无法使用动态 FormView 模板更改模式
我有一个 ASP.NET 页面,其中 FormView 数据绑定到 ObjectDataSource,它使用动态生成的模板根据应用程序数据库中的布局信息呈现 UI。我已经能够让模板正确呈现,并且一切看起来都很好,直到我单击其中一个按钮来更改模式 - 没有任何变化。
我的代码基于以下文章/帖子中提供的解释:
http://www.codeproject.com/KB/aspnet/DynamicFormview.aspx
http://msdn.microsoft.com/en-us/library/ms227423.aspx
http://msdn.microsoft.com/en-us/library/y0h809ak(vs.71).aspx
简而言之,在 Page.OnInit 方法中,我将模板的一个实例分配给 FormView EditItemTemplate、EmptyDataTemplate、InsertItemTemplate 和 ItemTemplate 属性(每个属性的不同实例,具有该模板的适当控件、布局等)。我看到调用了与默认模式对应的模板的 InstantiateIn 方法,正确创建了控件层次结构,并且按预期呈现了 UI。
我的每个模板中都有一组启用模式切换的按钮控件。因此,例如,在 ItemTemplate 中,我有一个带有 CommandName="New" 的按钮。我希望单击此按钮将导致 FormView 更改为插入模式。相反,我得到回发并在我的 ItemTemplate 上调用 InstantiateIn。我附加到 FormView 的 ModeChanging 和 ModeChanged 事件的处理程序不会触发。
当我逐步浏览控制层次结构时,我看到的对象模型与我在标记中创建的页面相同——但有一个例外。我使用 HtmlTable、HtmlTableRow 和 HtmlTableCell 控件来构建布局,而标记使用 <table>、<tr> 和 <td> 元素。
对我所缺少的有什么想法吗?我真的很想通过自动绑定(通过事件冒泡)来改变模式,而不是手动创建和编码按钮及其操作。
以下是用于生成模板的代码:
(请注意,模板已缓存,因此控制层次结构仅构建一次。)
asp.net - ASP.NET 复合控件不会冒泡事件,但模板会
我正在为 ASP.NET 应用程序开发一个复合控件,并且偶然地最初开发了该控件以使用 ITemplate 创建其子控件。子控件中将有一系列按钮,这些按钮将在根控件中处理。我在按钮上使用带有 CommandName/CommandArgument 属性的 OnBubbleEvent 将其全部连接起来。一切都很好......直到我将模板更改为控件。
当我将模板转换为控件并在我的根控件中调用 Controls.Add(new ChildControl()) 而不是 InstantiateIn(this) 时,事件冒泡不再起作用。
知道为什么吗?
(一切,我的意思是一切,其他都是一样的。)
c# - 我可以从数据库或字符串加载 ITemplate 吗?
我希望在 Web 应用程序中实现一些模板,并希望利用 ASP.NET 的模板化控件。但是,我不想依赖物理 .ascx 文件或 VirtualPathProvider 来加载模板。
我希望能够从数据库或其他数据存储(在内存中?)加载模板。 是否有任何 LoadTemplate() 方法的实现,它返回一个给定 .ascx 模板的字符串表示形式的 ITemplate?
如果没有,我将如何写一个?
仅供参考,Kentico 具有类似的功能,但它们依赖于在类上VirtualPathProvider
才能使用。使用该方法,他们能够加载存储在数据库中的模板(他们称之为转换)。LoadTemplate()
TemplateControl
c# - 如何将事件处理程序添加到继承 ITemplate 的 clss 中的控件
我制作了一个模板,用于将控件添加到我从后面的代码中获得的 DetailsView。
我的问题是我想在控件上添加一个事件处理程序,但我也无法在我从代码隐藏制作的 DetailsView 中访问 btn_Edit 。
c# - 使用 ITemplate 生成按钮在 GridView 中选择项目
我无法弄清楚如何在 ITemplate 中使用我的 imagebutton(见下文)将按钮的相应行数据(ItemID)附加为查询字符串。
我的 ITemplate 中的 ImageButton:
我应该在 imagebutton 的 OnClick 事件中处理它(如果是这样,有没有办法获取按钮所在的行)或者我可以在 GridView 事件(rowbinding、rowseleted、rowcommand 等)中处理它?
我很乐意应要求详细说明我的代码。^ ^
asp.net - 在设计模式下使用 ITemplate 的 Web 用户控件出错
我有一个带有以下标记的 Web 用户控件
背后的代码:
并在如下页面中使用
当我运行该页面时,它执行得很好。当我在设计模式下查看页面时,出现以下错误:
类型“System.Web.UI.UserControl”没有名为“Content”的公共属性。
我该如何解决这个问题?
编辑:我修改了代码
c# - 将控件动态添加到模板化用户控件?
几周前,我创建了一个模板化用户控件,大部分基于此处的示例:http: //msdn.microsoft.com/en-us/library/36574bf6 (v=VS.90).aspx
不同之处在于我没有实现“MessageContainer”类,因为我只想要一个空模板,我可以在设计时添加我想要的任何控件。
这个 TUC 一直运行良好,但我遇到了一个我在创建这个东西时没有预料到的场景。需要将此 TUC 动态添加到页面,这意味着我还需要在 TUC 的模板中动态添加控件。
我在这里找到了另一个关于如何动态创建模板并将其添加到模板控件的示例:http: //msdn.microsoft.com/en-us/library/y0h809ak (v=vs.71).aspx
这第二篇示例文章仅讨论了“DataList、Repeater 和 DataGrid 控件”,但我认为由于我在这里使用的是 ITemplate 接口,因此应该是同一件事。
但是,我无法让它工作,我不断收到“对象引用未设置为对象的实例”。当我尝试填充 TUC 时出错。
这就是我正在做的事情......
像上面的例子一样,我创建了一个 ITemplate 类:
然后,在测试页面代码隐藏中,我尝试动态加载和显示 TUC:
测试页面 HTML 源代码:
当我运行该页面时,在“container.Controls.Add(_control);”上出现“对象引用未设置为对象的实例”错误 XPCTemplate 类的行。当我调试测试页面和 TUC 控件时,TUC 的代码在 TUC 的 Page_Init() 方法期间将 XPCTemplate 接收到其 LayoutTemplate 中,但是当 XPCTemplate 中的 InstantiateIn() 事件随后立即触发时,“容器”参数是无效的。
我不确定为什么会发生这种情况,就像 XPCTemplate 类的 InstantiateIn() 方法试图在 TUC 中实际设置 PlaceHolder 控件,而不仅仅是传递内容。也许这应该是这种方式,而我在 TUC 方面遗漏了一些东西来允许这种行为?
这是我创建的第一个 TUC,也是第一次尝试动态填充/加载它,所以我确信我缺少完成此操作所需的一些东西。任何帮助是极大的赞赏。
- 安德鲁
c# - 带有自定义 ItemTemplate 的 ASP.Net 动态 Gridview
我需要一些帮助来渲染动态网格视图。使用下面的源代码,我可以将网格添加到页面并为数据源中的每个条目生成一行。问题是控件只出现在最后一行。如果我向数据源添加另一个条目,我会在 Gridview 中再获得一行,但只有最后一行显示我使用 ItemTemplate 添加的控件。当我调试解决方案时,我可以看到它为每个列设置了一个新的 ItemTemplate 并添加了所有控件,但是在网格的数据绑定之后,所有单元格都是空的,除了最后一行的单元格。
如果可以的话请帮忙。谢谢
asp.net - ASP.net Hot 为实现 ITemplate 接口的控件创建自定义命令?
我有从ITemplate
接口继承的控制权。数据显示在HtmlTable
控件中,在控件初始化时自动生成。每行包含ImageButton
代表标准命令(编辑、删除等)的控件。这里ImageButton
使用标准命令创建并将其添加到行模板的代码:
我想添加ImageButton
自定义命令(不是标准命令添加、编辑、删除等)。那么,如何添加自定义命令并在Itemplate
控制中正确处理呢?