使用更新面板来防止Radupload控件的回发

时间:2012-06-08 14:49:46

标签: c# asp.net file-upload updatepanel postback

我正在尝试使用RadUpload Control,但是,在任何按钮上单击页面回发。为了解决这个问题,我试图使用updatePanel并将按钮放在updatePanel中,这样只会发生部分回发。原因是RadUpload Control在回发时失去了它的价值。我正在动态创建所有控件,并且作为asp.net和C#的初学者,这对我来说很棘手。

以下是代码:

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
}

我知道我可能做错了什么哈哈,但任何建议都会很棒。谢谢!

2 个答案:

答案 0 :(得分:0)

您是否在回发时再次创建控件?如果我不记得错误,应该在init或preinit上再次创建控件,以便将viewstate加载到它们中。

此视频http://www.asp.net/web-forms/videos/aspnet-ajax/how-to-dynamically-add-controls-to-a-web-page显示类似的内容,我猜,否则星期一我可以在工作时在我的电脑上查找自己的代码。

希望它有所帮助!

答案 1 :(得分:0)

我已经通过从页面中完全删除此上传控件来解决此问题,而是将其替换为加载外部上载页面的按钮(只是一个弹出窗口)。我无法找到我原定的解决方案,但我目前的解决方案就是我现在所拥有的。