我想使用RadUpload控件,但是,在任何按钮上单击页面回发。为了解决这个问题,我尝试使用updatePanel并将按钮放在updatePanel中,以便只发生部分回发。原因是RadUpload Control在回发时丢失了它的值。我动态地创建所有的控件,并成为asp.net和C#的初学者,这对我来说很棘手。使用更新面板,以防止回传RadUpload控制
下面是代码:
Button aButton = new Button();
aButton.ID = newControls[1].ID + "_Button";
aButton.Click += new EventHandler(aButton_Click);
aButton.UseSubmitBehavior = false;
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = aButton.ID;
trigger.EventName = "Click";
UpdatePanel container = new UpdatePanel();
container.ID = newControls[1].ID + "_Container";
container.ChildrenAsTriggers = true;
container.UpdateMode = UpdatePanelUpdateMode.Conditional;
container.Triggers.Add(trigger);
container.ContentTemplateContainer.Controls.Add(aButton);
tcControl.Controls.Add(container);
static void aButton_Click(object sender, EventArgs e)
{
// Do Something
}
我知道我可能做一些非常错误的哈哈,但任何意见将是巨大的。谢谢!
在什么时候该代码的运行?我猜想你的[ASP.NET页面生命周期](http://msdn.microsoft.com/en-us/library/ms178472.aspx)有问题。具体而言,应该始终在“PreInit”事件期间添加动态生成的控件。 – jadarnel27
此代码通过在Page_Load中调用的方法运行。应始终在PreInit中创建动态创建的控件? 我动态创建大量的控制。这部分代码仅在创建radupload时发生。 – Eric
我试图在PreInit中放置动态控件生成方法,并且它们不会显示在页面上。我使用唯一的ID创建它们并将它们放入HTMLTable中。该表包含1 ... n行的任何地方,每行有两个单元格。第一个单元格包含一个动态创建的静态标签。第二个包含两个控件,一个动态创建的几乎任何类型的控件,以及一个包含第一个控件文本的标签。控件的在所述第二小区备用的可视性,编辑模式之间(非标记物是可见的)和非编辑方式(标签是可见的) – Eric