我怀疑我的问题围绕着对自定义事件处理程序如何在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)。
在任何帖子[back]上,我想在我的自定义控件中触发事件处理程序,这使我能够检查此容器DIV中的元素。无论用户是否做出任何选择,我都希望这个事件能够触发(控件可能已经预先填充,在这种情况下我还是想知道它中有哪些选项)。
我所追求的是这样的:
private GenerateControl(TemplateControl page){
var control = page.LoadControl("~/MyControl.ascx") as MyControl;
control.OnPostBack += HandlePostback;
}
我可能完全偏离轨道,这可能实际上是不可能的(或者是一个愚蠢的想法)。我能想到的唯一选择是发出实际的ASP.NET控件并挂钩内置的事件处理程序。
任何人都可以提出任何建议,或者指出任何讨论创建自定义事件处理程序的优秀文献吗?
答案 0 :(得分:2)
如果您为inputs
提供了名称属性,则值将显示在Request.Form