一直在拉我的头发,并在网上做一些尝试,找出一个优雅的解决方案来解决我的问题。
我有一个ProductImages.aspx页面。它在动态创建的列表中显示与该产品关联的所有图像。事件连接到每张图片以允许您更新它。
这很好用。
但是,我最后有一个选项可以让我添加一个新图像。这是一个触发AddImage方法调用的按钮。
现在发生的事情是创建原始控件并将其添加到包含事件的页面。然后触发按钮事件,重新创建所有现有图像控件和新图像控件。添加此点后,由于在OnInit之后添加事件,OnInit没有附加事件后创建新的图像控件。
我可以做一个Response.Redirect重新加载页面并触发OnInit再次连接事件,但这看起来非常不优雅,并且破坏了使用更新面板的重点。
有什么想法吗?
答案 0 :(得分:1)
我想你总是可以在div中加载图片上传控件,并有一个Javascript链接来切换div的显示属性。
或者使用AjaxToolKit中的CollapsiblePanel来隐藏和显示上传表单。
我认为这些方法中的任何一种都比回帖(即使它在UpdatePanel中)更优雅,只是为了检索图片上传表单。
答案 1 :(得分:0)
你的问题听起来好像你说你不能把控件放在OnInit中,因为它只在第一次加载页面时触发。事实并非如此 - 每次加载页面时都会触发OnInit(包括回发),因此即使使用更新面板,也可以在那里重新创建控件。
初始加载和回发之间 不同的一个属性是Page.IsPostback属性,您可以使用该属性在第一次加载页面时执行操作。