1

我使用计时器和更新面板在我的页面中显示时钟(只是一个例子)。

在我的 aspx 中使用此代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>

    <script type="text/javascript">

    </script>

    <script runat="server">
        protected void btnClick(object sender, EventArgs e)
        {
            for (int i = 0; i < 100000000; i++)
            {
                txt.Text = "Denis Storti";
            }

        }
        protected void TimerTick(object sender, EventArgs e)
        {
            DropDownList1.Focus();
            ScriptManager1.SetFocus(DropDownList1);
            for (int i = 0; i < 100000000; i++)
            {
                txt.Text = "Timer Tick";
                //upnBusca.Update();


            }
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript">
        function Cancel() {
            Sys.WebForms.PageRequestManager.getInstance().abortPostBack();
        }

        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        prm.add_endRequest(EndRequest);
        var postBackElement;
        function InitializeRequest(sender, args) {
            postBackElement = args.get_postBackElement();
            if (postBackElement.id == 'Timer1') {
                $get('UpdateProgress1').style.display = "block";
            }
        }
        function EndRequest(sender, args) {
            if (postBackElement.id == 'Timer1') {
                $get('UpdateProgress1').style.display = "none";
            }
        }
    </script>

    <div style="padding-left: 20%; padding-top: 10%">
        <p>
       <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="TimerTick">
            </asp:Timer>
            <asp:UpdatePanel ID="upnBusca" UpdateMode="Conditional" ChildrenAsTriggers="false"
                runat="server">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btnBusca" EventName="Click" />
                </Triggers>
                <ContentTemplate>
                    <asp:TextBox ID="txt" runat="server">
                    </asp:TextBox>
                    <asp:Button ID="btnBusca" runat="server" OnClick="btnClick" Text="Busca Nome" />
                    <%=DateTime.Now.ToString() %>
                    &nbsp;
                    <asp:UpdatePanel ID="upnDate" UpdateMode="Conditional" ChildrenAsTriggers="false"
                        runat="server">
                        <ContentTemplate>
                            <%=DateTime.Now.ToString() %>
                            <br />
                                 <asp:DropDownList ID="DropDownList1" runat="server" 
                        Width="110px">
                        <asp:ListItem>1</asp:ListItem>
                        <asp:ListItem>2</asp:ListItem>
                        <asp:ListItem>3</asp:ListItem>
                        <asp:ListItem>4</asp:ListItem>
                        <asp:ListItem>5</asp:ListItem>
                        <asp:ListItem>6</asp:ListItem>
                        <asp:ListItem></asp:ListItem>
                    </asp:DropDownList>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
                            <asp:AsyncPostBackTrigger ControlID="DropDownList1" />
                        </Triggers>
                    </asp:UpdatePanel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdateProgress DisplayAfter="0" ID="UpdateProgress1" runat="server" DynamicLayout="False">
                <ProgressTemplate>
                    <span style="font-size: large">Processing...</span>
                    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="Cancel(); return false;"
                        Text="Cancel" />
                </ProgressTemplate>
            </asp:UpdateProgress>
        </p>
    </div>
    </form>
</body>
</html>

我选择了一个下拉列表,这个 ajax 代码导致下拉列表不集中并关闭。

我怎样才能保持对这个下拉列表的关注。

任何帮助,将不胜感激。谢谢

4

0 回答 0