BebeSaiyan Ответов: 1

Asp.net кнопка onclick не работает в updatepanel


Моя проблема в том, что onclick кнопки asp не работает внутри панели обновления. В основном мой код делает следующее: У меня есть элемент управления ASP fileupload для загрузки файла. А затем после этого пользователь может нажать кнопку, и имя файла загруженного файла будет отображаться в элементе управления ASP label.

Но когда я попробовал это сделать, он не отображал имя файла в метке. Он ничего не делает.

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

Вот aspx:

<asp:UpdatePanel runat="server" UpdateMode="Always" ID="updPnlName" 
    ChildrenAsTriggers="true">
                         <ContentTemplate>
                              <asp:FileUpload runat="server" ID="Image1"/>
                                   <asp:Button ID="Button2" runat="server" 
                                    Text="Upload" OnClick="Button2_Click"/>
                             </ContentTemplate>
                            <Triggers>
                               <asp:AsyncPostBackTrigger ControlID="Button2" 
                                    EventName="Click"/> 
                            </Triggers>
                     </asp:UpdatePanel>
                     <asp:Label ID="Label3" runat="server" Text="Label">
  </asp:Label>


Вот код-за ним:

public void Button2_Click(Object sender, EventArgs e)
{
    var filename1 = Image1.FileName;
    Label3.Text = "Upload successfull - " + filename1;
}


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

P_Z

Привет, я думаю, вам следует избегать использования UpdatePanels...вы можете достичь той же функциональности с помощью JavaScript/jQuery и Ajax-вызовов.

Возможно, Вам будет интересно прочитать: https://stackoverflow.com/questions/1151821/advantages-and-disadvantages-of-using-ajax-update-panels-in-asp-net-application и подобные статьи

1 Ответов

Рейтинг:
2

Aria Jafarian

У вас есть менеджер сценариев в вашей форме?
Такая бирка:

<asp:ScriptManager ID="ScriptManager1" runat="server" />


Это поможет всем здесь, Если вы разместите здесь всю свою страницу asp.
Я вижу,что вы пытаетесь использовать управление fileupload.Вы можете протестировать этот код:
 <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
    <div style="margin: 30px">
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:RequiredFieldValidator ErrorMessage="Required" ControlToValidate="FileUpload1"

            runat="server" ForeColor="Red"></asp:RequiredFieldValidator>
        <asp:Button ID="btnUpload" Text="Submit" runat="server" OnClick="Upload" />
    </div>
</ContentTemplate>
<Triggers>
    <asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>
</asp:UpdatePanel>


А потом в коде позади:
protected void Upload(object sender, EventArgs e)
{
    string fileName = System.IO.Path.GetFileName(FileUpload1.FileName);
    FileUpload1.SaveAs(Server.MapPath("~/Whateverfolderyouwanttouploadto/") + fileName);
}