这是我页面中的一些代码:
<asp:UpdatePanel ID="UpdatePanelEQSelector" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc12:EQSelector ID="custEQSelector" OnEqChange="custEQSelector_OnEqChange" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
在我的用户Control中,我被要求添加一个fileuploader。
简单编码后,我测试了,我的fileuploader总是空的。
我搜索了一段时间,发现这是一种正常的行为。
使其工作的解决方案是为updatePanel添加PostBackTrigger
。
当我在我的aspx页面中测试它时,我实现了它并且我的fileUploader拥有该文件。 然后我尝试动态添加它(最终在我的控件中执行它),它使用了:
PostBackTrigger trigger = new PostBackTrigger();
trigger.ControlID = this.btnTest.ID;
this._UpdatePanelEQSelector.Triggers.Add(trigger);
但是我无法让这个代码在我的控件中工作(我将updatePanel作为参数传递给我在Load中的控件集,fileUpload总是为空)
你看到了解决方案吗?
由于
答案 0 :(得分:1)
它是否回发,但是将控件留空?或者根本没有回复。如果它没有回发,我会添加这个
ScriptManager.GetCurrent(this).RegisterPostBackControl(btnTest);
到用户控件的page_load。
如果它回发了,但是控件是空的,那么我打赌在页面的某个地方可能会有一些狡猾的HTML,并且值会丢失。