asp.net - How to get Id update panel that initial a request in javascript - Stack Overflow

I want to knowId update panel that initial a request in JavaScript .I write this script but it return

I want to know Id update panel that initial a request in JavaScript .I write this script but it return undefined.

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 is not null and it return [object] but How I can get ID?


Edit 1)

I think when UpdatePanel be inside MasterPage it does not work.this is my code:

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

and :

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

and code behind:

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

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

I want to know Id update panel that initial a request in JavaScript .I write this script but it return undefined.

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 is not null and it return [object] but How I can get ID?


Edit 1)

I think when UpdatePanel be inside MasterPage it does not work.this is my code:

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

and :

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

and code behind:

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

protected void timer_Tick(object sender, EventArgs e) 
{    
} 
Share Improve this question edited Jun 11, 2013 at 20:31 wonea 4,98917 gold badges91 silver badges143 bronze badges asked Apr 6, 2012 at 8:47 DooDooDooDoo 13k70 gold badges192 silver badges318 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

You can use the get_updatePanelsToUpdate that return an array with the Ids of the UpdatePanels that will be going to updated.

<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./en-us/library/ee224805.aspx

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744829192a4595980.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信