Member 13040174 Ответов: 1

Как сделать две функции на один клик в строке команды с помощью VB.NET?


Мне нужно скачать файл, а также показать всплывающее окно После загрузки. Но в моем коде ниже это только загрузка файла.

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

If e.CommandName = "MailData" Then
    Response.Clear()
    Response.AddHeader("content-disposition", "attachment; filename=AttendanceReport.xls")
    Response.Charset = ""
    Response.ContentType = "application/vnd.ms-excel"
    Dim sw As New StringWriter()
    Dim htw As New HtmlTextWriter(sw)
    AttendanceGrid.RenderControl(htw)
    Response.Output.Write(sw.ToString())

    MailPopUp.Show()
End If

Karthik_Mahalingam

mailpopup-это панель?

Member 13040174

нет.. modalpopupextendar

Karthik_Mahalingam

ладно.
ajaxtoolkit?

Member 13040174

да

Member 13040174

если я отдам его один. но когда я даю такой же код, как и выше. Он загружает только файл

Karthik_Mahalingam

да, он должен быть разрешен с помощью файлов cookie.

Member 13040174

как, сэр?

Karthik_Mahalingam

лучший вопрос.
запускается ли загрузка кнопкой?
является ли это простой сеткой (без поля шаблона )

Member 13040174

наличие сетки с шаблонным полем

Karthik_Mahalingam

ладно. ждать

Member 13040174

хорошо сэр

Karthik_Mahalingam

проверьте мое решение.

Member 13040174

благодарить U так много!

Karthik_Mahalingam

Работает?

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

обратитесь к этому образцу, который я написал на языке Си#

Язык JavaScript

<script>


       function invokeCacheCheck() {
            deleteCookie();
           var timeInterval = 500; // milliseconds (checks the cookie for every half second )

           var loop = setInterval(function () {
               if (IsCookieValid()) {
                   document.getElementById('<%= btnHidden.ClientID %>').click();
                  clearInterval(loop)
               }

           }, timeInterval);
       }

       // cookies
       function deleteCookie() {
           var cook = getCookie('ExcelDownloadFlag');
           if (cook != "") {
               document.cookie = "ExcelDownloadFlag=; Path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC";
           }
       }

       function IsCookieValid() {
           var cook = getCookie('ExcelDownloadFlag');
           return cook != '';
       }

       function getCookie(cname) {
           var name = cname + "=";
           var ca = document.cookie.split(';');
           for (var i = 0; i < ca.length; i++) {
               var c = ca[i];
               while (c.charAt(0) == ' ') {
                   c = c.substring(1);
               }
               if (c.indexOf(name) == 0) {
                   return c.substring(name.length, c.length);
               }
           }
           return "";
       }


   </script>


Aspx

<asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
        <asp:Button ID="btnDownload" OnClientClick="invokeCacheCheck()" runat="server" Text="Download" OnClick="btnDownload_Click" />
        <asp:Button ID="btnHidden" Style="display: none" runat="server" Text="hidden button" OnClick="btnHidden_Click" />


с фоновым кодом

protected void btnHidden_Click(object sender, EventArgs e)
       {
           MailPopUp.Show()
       }


       protected void btnDownload_Click(object sender, EventArgs e)
       {
           Response.Clear();
           Response.Buffer = true;
           Response.ClearContent();
           Response.ClearHeaders();
           Response.Charset = "";
           string FileName = "excel.xls";
           StringWriter strwritter = new StringWriter();
           HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
           Response.ContentType = "application/vnd.ms-excel";
           Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
           GridView1.RenderControl(htmltextwrtter);
           HttpCookie cookie = new HttpCookie("ExcelDownloadFlag");
           cookie.Value = "Flag";
           cookie.Expires = DateTime.Now.AddDays(1);
           Response.AppendCookie(cookie);
           Response.Output.Write(strwritter.ToString());
           Response.Flush();
           Response.End();
       }


Karthik_Mahalingam

+

 protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack) return;
            DataTable dt = new DataTable();
            dt.Columns.Add("id");
            dt.Columns.Add("name");
            dt.Rows.Add(1, "one");
            dt.Rows.Add(2, "two");
            dt.Rows.Add(3, "three");
            GridView1.DataSource = dt;
            GridView1.DataBind();
            
        }