2012-04-06 22 views
2

我想知道Id更新面板,該初始請求在JavaScript中。我編寫此腳本但它返回undefined如何獲取在javascript中初始請求的Id更新面板

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不爲空,並返回[object],但我怎樣才能得到ID


編輯1)

我認爲當UpdatePanel在裏面MasterPage不work.this是我的代碼:

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

和後面的代碼:

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的Ids將要更新。

<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 2012-04-06 09:17:24

+0

試這個'console.log(args.get_updatePanelsToUpdate());'在谷歌瀏覽器中查看數組(當然打開控制檯) – Aristos 2012-04-06 09:18:36

+0

@Kerezo我只是測試它並且對我很好 - 檢查你是否有任何javascript錯誤 - 或者如果您在調用之前不包含腳本管理器!腳本管理器小心地包含這個功能,如果這個腳本沒有找到它們,那麼就不起作用。這是來自MS – Aristos 2012-04-06 09:20:32

相關問題