【发布时间】:2011-02-14 13:06:23
【问题描述】:
我怀疑我的问题在于对自定义事件处理程序在 ASP.NET 中的工作方式缺乏了解。我读过几篇文章,但目标受众一直在尝试与我不同的东西。
我创建了一个在 Init 事件期间动态放置到我的页面上的 UserControl。它填充并且工作得很好,但是我对如何在回发期间从中检索数据感到头疼。
它实际上是一个完全使用客户端 JavaScript 操作的多选组合框(我大量使用 jQuery)。在控件容器元素中,我呈现了一个包含所有选定项的空 DIV 元素。当用户选择项目时,我会在包含一些标记的容器 DIV 中生成 DIV。在服务器端,我感兴趣的是几个 INPUT 字段的内容。
选择一个项目后,呈现的 HTML 如下所示:
<div class="multiPickContainer">
<div class="multiPickItem">
<input type="text" />
<input type="hidden" />
</div>
</div>
当然,问题在于这些选定的项目是在客户端生成的,而服务器对它们一无所知(例如,没有 runat="server" - 它是纯 HTML)。
在任何帖子[返回] 中,我希望在我的自定义控件中触发一个事件处理程序,使我能够检查此容器 DIV 中的元素。无论用户是否做出任何选择,我都希望触发此事件(控件可能已预先填充,在这种情况下,我仍然想知道其中有哪些选择)。
我所追求的是这样的:
private GenerateControl(TemplateControl page){
var control = page.LoadControl("~/MyControl.ascx") as MyControl;
control.OnPostBack += HandlePostback;
}
我可能完全偏离了轨道,这实际上可能是不可能的(或者是一个愚蠢的想法)。我能想到的唯一选择是发出实际的 ASP.NET 控件并挂钩内置事件处理程序。
任何人都可以提出任何建议,或者向我指出任何讨论创建自定义事件处理程序的优秀文献吗?
【问题讨论】:
标签: asp.net