2012-04-06 5 views
2

JavaScriptでリクエストを受け取ったIDの更新パネルを知りたいのですが、このスクリプトを書いていますが、undefinedを返します。IDを取得するにはどうすればいいですか?javadriptで最初にリクエストするパネル

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_initializeRequest(InitializeRequest); 
prm.add_endRequest(EndRequest); 

function InitializeRequest(sender, args) { 
    alert(sender.ID); 
} 
function EndRequest(sender, args) { 
} 

sender nullでなく、それが[object]を返すが、どのように私はIDを得ることができますか?

<script type="text/javascript"> 
    $(document).ready(function() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_initializeRequest(InitializeRequest); 
     prm.add_endRequest(EndRequest); 


     function InitializeRequest(sender, args) { 
      var UpdPanelsIds = args.get_updatePanelsToUpdate(); 
      alert(UpdPanelsIds[0]); 
     } 
     function EndRequest(sender, args) { 
      if ($('.AlarmLogo').val() == "3") { 
       alert('nima'); 
      } 
     } 
    }); 


</script> 

と::

<form runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:Timer ID="timer" Interval="4000" runat="server" OnTick="timer_Tick" /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Panel ID="pnlAlarm" runat="server" CssClass="pnlAlarm" ClientIDMode="Static"> 
      <a href="#"> 
       <div id="Alarm"> 
        <asp:TextBox ID="lblContent" runat="server" Text="HHHEEELLLOOO" CssClass="AlarmLogo" ClientIDMode="Static"></asp:TextBox> 
       </div> 
      </a> 
     </asp:Panel> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="timer" /> 
    </Triggers> 
</asp:UpdatePanel> 
    <div class="main"> 
     <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 
    </div> 
</form> 

MasterPage内側にあるUpdatePanelとき


編集1)私が思う

は、それは私のコードwork.thisではありませんコードの後ろ:

protected void Page_Load(object sender, EventArgs e) 
{  
    if (!IsPostBack)  
    {   
     Session["nima"] = 1;  
    } 
} 

protected void timer_Tick(object sender, EventArgs e) 
{  
} 

答えて

5

get_updatePanelsToUpdateは、更新されるUpdatePanelsのIDを持つ配列を返すことができます。

<script> 
    window.onload = function() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 

     prm.add_initializeRequest(InitializeRequest); 
     prm.add_endRequest(EndRequest); 
    }; 

     function InitializeRequest(sender, args) 
     {  
     // get the array of update panels id 
     var UpdPanelsIds = args.get_updatePanelsToUpdate(); 
     // get the Post ID 
     args.get_postBackElement().id; 
     } 

     function EndRequest(sender, args) { 
     } 
</script> 

http://msdn.microsoft.com/en-us/library/ee224805.aspx

+0

おかげで私は '警告(UpdPanelsIds)を使用;'と私は空のメッセージボックスと '警告ました(UpdPanelsIdsを[0]);'と私は 'undefiend'メッセージボックス – Arian

+0

試しを得ましたこのconsole.log(args.get_updatePanelsToUpdate()); '配列を見るためにgoogle chromeで(もちろんコンソールを開く) – Aristos

+0

@Kerezo私はちょうどそれをテストし、うまく動作する - あなたはjavascriptエラーがあるかどうかをチェックする - またはあなたがその呼び出しの前にスクリプトマネージャを含んでいなければ!スクリプトマネージャは、このスクリプトを見つけられなかった場合は、この関数をインクルードします。これはMS – Aristos

関連する問題