2010-09-14 73 views
1

我正在嘗試在我的web應用程序(C#.NET)中實現flowplayer.org的JQuery工具提示 http://flowplayer.org/tools/demos/tooltip/form.htmlAJAX vs JQuery Tooltip - UpdatePanel

我有以下腳本在Master.Page:

  function createTooltip() { 



      // select all desired input fields and attach tooltips to them 
      $("#aspnetForm :input").tooltip({ 
       // place tooltip on the right edge 
       position: ['center', 'right'], 
       // a little tweaking of the position 
       offset: [-2, 10], 

       // use a simple show/hide effect 
       effect: 'fade', 

       // custom opacity setting 
       opacity: 0.7 
      });   
} 

     //--add tooltips after every postback (including partial AJAX postbacks) 

     function pageLoad(sender, args) { 
      if (args.get_isPartialLoad()) { 
       createTooltip(); 
      } 
     } 

將控制該輸入和幾個其他更多:

<asp:TextBox ID="txtEscola" runat="server" Text="" class="tooltipHandle" title="Observações adicionais que sejam prudentes introduzir" MaxLength="100" </asp:TextBox> 

我有下一個UpdatePanel一個GridView和DetailsView,後第一個partialPostBack,工具提示只能在UpdatePanel中使用輸入,並且在下一個partialPostBacks之後不會有任何工作。

如果我改變來自:

 function pageLoad(sender, args) { 
      if (args.get_isPartialLoad()) { 
       createTooltip(); 
      } 
     } 

到:

 function pageLoad(sender, args) { 
      createTooltip(); 
    } 

只有輸入的UpdatePanel的外面將工作

如果我訪問直接輸入通過它的id和階級,它將正常工作,但這意味着將它們全部輸入:

$("#ctl00_ContentPlaceHolder1_DetailsView1_txtEscola.tooltipHandle").tooltip({ 

關於如何使它們全部綁定的想法? 在此先感謝

+0

你不能比較工具提示AJAX,重新分離實體並且無論如何都不相關。 – RobertPitt 2010-09-14 14:40:27

+0

你是什麼意思?我將這篇文章與AJAX相關,因爲UpdatePanels的partialPostBacks – 2010-09-14 15:04:20

回答

0

刷新更新面板時,您的JavaScript聲音不再受限制。

當您的更新面板發回以重新綁定JavaScript時,您需要執行以下代碼片段之一。

ClientScriptManager cs = Page.ClientScript; 
cs.RegisterStartupScript(typeof(Page), "ReApplyJavascript", "<script type=text/JavaScript>createTooltip();</script>", false); 

OR

ScriptManager.RegisterStartupScript(Page, typeof(Page), "ReApplyJavascript", "<script type=text/JavaScript>createTooltip();</script>", false); 
+0

非常感謝您的回答,但它並不奏效=( – 2010-09-14 15:39:20

+0

@Rui Santos - 如果通過對ID進行硬編碼,一切運行良好,那麼也許您的選擇器是嘗試通過類名$('。tooltipHandle')來選擇所有東西。tooltip({... – 2010-09-14 16:12:34

+0

也嘗試過,只有在updatepanel之外的輸入字段工作..我用盡了想法 – 2010-09-14 16:35:23

2

管理用一個簡單的解決方法來解決它,創建了一個第二功能的工具提示創建以影響在DetailsView/UpdatePanel內僅輸入字段:

 function createTooltipOutside() { 
     $('.tooltipHandleOutside').tooltip({ 
      position: ['center', 'right'], 
      offset: [-2, 10], 
      effect: 'fade', 
      opacity: 0.7 
     }); 
    } 
    function createTooltipInside() { 
     //--call this to add tooltips to any element with a class of "tooltipHandleInside" 
     $('.tooltipHandleInside').tooltip({ 
      position: ['center', 'right'], 
      offset: [-2, 10], 
      effect: 'fade', 
      opacity: 0.7 
     }); 

    } 

    //--add tooltips after every postback (including partial AJAX postbacks) 

    function pageLoad(sender, args) { 
     if (args.get_isPartialLoad()) { 
      createTooltipInside(); 
     } 
     createTooltipOutside(); 
    } 

我仍然不明白爲什麼它以前沒有工作...