【发布时间】:2020-08-13 22:00:59
【问题描述】:
我有一个中继器,其中包含一个 AsyncFileUpload 和一个错误标签,所有这些都嵌入在面板中(常规面板,而不是更新面板)。在 AFU 的 UploadComplete 事件中,我需要访问面板和标签;我可以使用“sender”参数访问 AFU 本身:
<asp:Repeater runat="server" ID="rpt1" ClientIDMode="Static" OnItemDataBound="rptQuestions_ItemDataBound">
<ItemTemplate>
< other controls>
<asp:Panel runat="server" ID="pnlFU" clientidmode="static">
<ajaxToolkit:AsyncFileUpload runat="server"
ID="fuAttchedDocs"
clientidmode="static"
ThrobberID="myThrobber"
UploaderStyle="Traditional"
OnClientUploadComplete="onClientUploadComplete"
OnUploadedComplete="fuAttchedDocs_UploadedComplete"
OnUploadedFileError="fuAttchedDocs_UploadedFileError" />
<asp:Label runat="server" ID="lblError" clientidmode="static" Text="" CssClass="field-validation-error" Style="display: none" />
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
protected void fuAttchedDocs_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
{
AsyncFileUpload fuAttchedDocs = (AsyncFileUpload)sender;
if (fuAttchedDocs.HasFile)
{
// How do I access these?
lblError.Style["display"] = "none";
....
pnlFU.Style["display"] = "block";
}
}
如何确保访问中继器内的正确面板和标签?
此外,当单击位于转发器外部的“提交”按钮时,我正在使用以下内容确保所有文件都立即上传并调用 js 函数“sendResponse()”,该函数执行回发以处理所有中继器项目。
<button type="submit" class="btn btn-primary btn-md" onclick="javascript:document.forms[0].encoding = 'multipart/form-data';sendResponse();">Submit Response</button>
这看起来正确吗?在我弄清楚可以访问中继器内部的控件之前,我无法对其进行测试,但我想我会与您核实是否有意义。
【问题讨论】:
标签: c# asp.net repeater asyncfileupload