在将href绑定到链接按钮后执行Ajax方法.之前应该执行的

本文关键字:执行 方法 Ajax 在将 绑定 链接 按钮 href | 更新日期: 2023-09-27 18:02:34

我在使用colorbox插件时遇到了一个与jquery相关的问题

$("[id$=LinkButton1]").click(function() {
 
        var filename=$(this).text();
      
     
        $.ajax({
          type: "POST",
         url: "WebService.asmx/lnkbtn1",
         data: '{filename: ''' + filename + '''}',
          
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg) {
        
         filename=msg.d;
             alert("filename1="+msg.d); ----------1.
            
          
          }
         
        });
         alert('Outside ');------2
       //  $(".iframe").attr('href',filename);---------3
         $(".iframe").colorbox({iframe:true, width:"50%", height:"100%"});
   
     });
     
        });

这里当我在gridview中点击带有文件名的链接按钮

 <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandArgument='<%#((GridViewRow)Container).RowIndex%>'
                        Text='<%# Bind("FileName") %>' CommandName="ViewImages" CssClass="iframe"></asp:LinkButton>
                </ItemTemplate>
 </asp:TemplateField>

我使用的是colorbox jquery插件…这里发生的是我得到文件名。然后我把文件名传递给webservice方法(lnkbtn1),处理文件名,然后我将得到一个文件名,我必须在弹出的colorbox中显示它…

但是这里有一个问题。先执行,然后执行1。所以我不能将文件名绑定到'href'

编辑当文件名传递给webmethod时,它首先被转换成html..假设文件类型是word文档或excedlfile,那么它首先转换为html。假设文件名为notes.doc..

  1. filename(notes.doc)被传递给webmethod

  2. 将notes.doc转换为notes.html

  3. webmethod返回notes.html

    转换为html的原因,因为。doc文件内容不会显示在iframe

请帮…

在将href绑定到链接按钮后执行Ajax方法.之前应该执行的

$ajax是异步的。需要从$ajax得到结果的代码必须在成功处理程序中。您的代码至少应该是这样的(尽可能少地修改,因为我不知道return true;的目的或filename变量的确切目的)

$("[id$=LinkButton1]").click(function() {    
        var filename=$(this).text();
        $.ajax({
          type: "POST",
         url: "WebService.asmx/lnkbtn1",
         data: '{filename: ''' + filename + '''}',
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg) {
                filename=msg.d;
                alert("filename1="+msg.d); //----------1.
                alert('Outside ');//------2
                $(".iframe").attr('href',filename);//---------3
                $(".iframe").colorbox({iframe:true, width:"50%", height:"100%"});
               }
        });
      return true;
     });    
 });