1

使用 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 插件...这里发生的事情是我得到文件名...然后我传递给 web 服务方法(lnkbtn1)的文件名,处理文件名然后我会从中得到一个文件名,我必须显示它在弹出的颜色框中...

但是这里有一个问题 2. 先执行然后 1. 执行所以我无法将文件名绑定到'href'

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

  1. 文件名(notes.doc)被传递给 webmethod

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

  3. webmethod 返回 notes.html

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

请帮忙...

4

1 回答 1

0

$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;
     });    
 });
于 2013-03-06T08:15:13.680 回答