wychong Ответов: 2

Fileupload с postbacktrigger вызывает обновление страницы


Я делаю загрузку файла, который имеет другой контроль, такой как выпадающий список и переключатель внутри панели обновления.

Когда есть обратная передача, это приведет к тому, что загрузка файла потеряет содержимое. Поэтому я поставил PostbackTrigger для всех связанных элементов управления.

Решение было отработано, но вызвало еще одну проблему, когда вся страница обновлялась при выпадающем списке selectedIndexChanged.

Есть ли у кого-нибудь идеи, как решить эту проблему?

Заранее спасибо за помощь.

Что я уже пробовал:

Я попытался использовать AsynPostbackTrigger и поставить ChildrenAsTrigger = True. Но, этот метод не в состоянии помочь и страница все еще обновляется. Кроме того, я не уверен, какое решение может быть применено, так как у меня есть поиск в интернете и я не могу найти подобную проблему.

2 Ответов

Рейтинг:
2

F-ES Sitecore

Элемент управления FileUpload не работает внутри панели обновления asynch. Когда вы выберете файл, а затем сделаете что-то, что вызовет обновление панели обновления, файл потеряет свое значение, так как вы не можете предварительно выбрать его по соображениям безопасности.

Вероятно, вам придется перепроектировать то, что вы делаете, и разделить процесс на два этапа...собрать вещи отдельно от файла на первом этапе, а затем на втором этапе попросить их загрузить файл. Либо это, либо используйте плагин загрузки файлов asych, который позволит вам загружать файл асинхронно, так как метод updatepanel не будет работать.


Рейтинг:
1

Bhola Ram Sahu

Для такого типа проблем нет необходимости использовать AsynPostbackTrigger.
Просто положить свои выпадающем контроля управления UpdatePanel, т. е. управления AJAX.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:DropDownList runat="server" ID="ddlLink">
            <asp:ListItem Text="text1" />
            <asp:ListItem Text="text2" />
        </asp:DropDownList>
    </ContentTemplate>
</asp:UpdatePanel>




если вы сделали какой-либо код при загрузке страницы, то есть для загрузки один раз при загрузке страницы, поместите эти строки в

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Lines of code
        }
    }