1

カラーボックスプラグインを使用するときに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%"});
   
     });
     

        });

ここで、グリッドビューでファイル名のリンクボタンをクリックすると

 <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>

私はcolorboxjqueryプラグインを使用しています...ここでファイル名を取得します...次に、そのファイル名をWebサービスメソッド(lnkbtn1)に渡し、ファイル名を処理してから、表示する必要のあるファイル名を取得しますポップアップカラーボックスで...

ただし、ここには1つの問題があります。2。最初に実行されてから1.が実行されるため、ファイル名を「href」にバインドできません。

ファイル名がwebmethodに渡されるときに編集 し、最初にhtmlに変換します。ファイルタイプがword documentまたはexcedlfileの場合、最初にhtmlに変換するとします。ファイル名がnotes.docであるとします。

  1. filename(notes.doc)がwebmethodに渡されます

  2. notes.docをnotes.htmlに変換します

  3. webmethodはnotes.htmlを返します

    .docファイルのコンテンツがiframeに表示されないため、htmlに変換する理由

助けてください...

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 に答える