zoukankan      html  css  js  c++  java
  • asp.net/ajax

    asp.net/ajax  1.
    http://www.asp.net/AJAX/Documentation/Live/tutorials/UsingUpdatePanelControls.aspx

    管理掌握触发器/以编程方式刷新一个UpdatePanel

    触发一个UpdatePanel控件使UpdatePanel控件开始刷新的控件,要通过ScriptManager在Page页上"注册".这,通常会自动发生,当子控件在UpdatePanel控件的ContentTemplate内的时候。你也可以明确地指定触发器---通过使用UpdatePanel控件的Triggers集合UpdatePanel1.Triggers是UpdatePanel1不是UpdatePanel!另外,你也可以在你的页面的服务器端代码(cs代码内)编程(动词)指定触发器以引起UpdatePanel控件的刷新动作.万一触发器控件在"设计时"不可用,你也可以注册(动词)控件成为(动词)一个触发器---通过使用ScriptManager控件的RegisterAsyncPostBackControl(Control)方法,当然使用时是ScriptManager1而不是ScriptManager!
    被以编程方式指定为触发器的控件必须被注册----在任何一次当PostBack发生的时候。我们要求你把调用UpdatePanel控件的
    RegisterAsyncPostBackControl(Control)方法的代码放在你的页面的Page_Load事件里,象下面这样:

    protected void Page_Load()
    {
        ScriptManager1.RegisterAsyncPostBackControl(SurveyDataList);
    }

    要以编程方式"刷新"UpdatePanel控件,你可以主动调用UpdatePanel控件的Update()方法.这是很有用的,尤其是在必须在服务器端执行一些处理-----在刷新UpdatePanel控件之前.代码:

    protected void ChoicesRadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
    {
        SortedList answers 
    = this.AnsweredQuestions;
        RadioButtonList r 
    = (RadioButtonList)sender;
        answers[r.ToolTip] 
    = r.SelectedValue;
        
    this.AnsweredQuestions = answers;

        ResultsList.DataSource 
    = this.AnsweredQuestions;
        ResultsList.DataBind();

        
    if (this.AnsweredQuestions.Count == SurveyDataList.Items.Count)
            SubmitButton.Visible 
    = true;

        UpdatePanel1.Update();
    }

    下面的例子展示了一个页面,该页面注册了一个控件作为触发器----通过使用RegisterAsyncPostBackControl(Control)方法,并且以编程方式刷新一个UpdatePanel控件-----通过使用Update()方法。



    <%@ Page Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    >

    <script runat="server">

        protected SortedList AnsweredQuestions
        
    {
            get 
    return (SortedList)(ViewState["AnsweredQuestions"?? new SortedList()); }
            set 
    { ViewState["AnsweredQuestions"= value; }
        }


        protected 
    void Page_Load()
        
    {
            ScriptManager1.RegisterAsyncPostBackControl(SurveyDataList);
        }


        protected 
    void ChoicesRadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
        
    {
            SortedList answers 
    = this.AnsweredQuestions;
            RadioButtonList r 
    = (RadioButtonList)sender;
            answers[r.ToolTip] 
    = r.SelectedValue;
            
    this.AnsweredQuestions = answers;

            ResultsList.DataSource 
    = this.AnsweredQuestions;
            ResultsList.DataBind();

            
    if (this.AnsweredQuestions.Count == SurveyDataList.Items.Count)
                SubmitButton.Visible 
    = true;

            UpdatePanel1.Update();
        }


        protected 
    void SubmitButton_Click(object sender, EventArgs e)
        
    {
            
    // Submit responses.
        }

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        
    <title>Registering Controls as Async Postback Controls</title>
        
    <style type="text/css">
        .AnswerFloatPanelStyle 
    {
        background-color
    : bisque;
        position
    : absolute;
        right
    : 10px;
        height
    : 130px;
        width
    : 150px;
        border-right
    : silver thin solid; border-top: silver thin solid; 
        border-left
    : silver thin solid; border-bottom: silver thin solid;    
        
    }

        
    </style>
    </head>
    <body>
        
    <form id="form1" runat="server">
            
    <div>
                
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
                
    <div id="AnswerFloatPanel" class="AnswerFloatPanelStyle" runat="server">
                    
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                        
    <ContentTemplate>
                            Completed Questions:
                            
    <asp:DataList ID="ResultsList" runat="server">
                                
    <ItemTemplate>
                                    
    <asp:Label ID="ResultQuestion" runat="server" Text='<%# Eval("Key") %>' />
                                    ::
                                    
    <asp:Label ID="ResultAnswer" runat="server" Text='<%# Eval("Value") %>' />
                                
    </ItemTemplate>
                            
    </asp:DataList>
                            
    <style="text-align: right">
                                
    <asp:Button ID="SubmitButton" Text="Submit" runat="server" Visible="false"
                                    OnClick
    ="SubmitButton_Click" />
                            
    </p>
                            
    <asp:Label ID="Message" runat="Server" />
                        
    </ContentTemplate>
                    
    </asp:UpdatePanel>
                
    </div>
                
                
    <asp:XmlDataSource ID="SurveyDataSource" 
                                   runat
    ="server" 
                                   XPath
    ="/Questions/Question"
                                   DataFile
    ="~/App_Data/SurveyQuestions.xml"/>
                
    <asp:DataList
                    
    ID="SurveyDataList"
                    DataSourceID
    ="SurveyDataSource"
                    runat
    ="server">

                    
    <ItemTemplate>
                      
    <table cellpadding="2" cellspacing="2">
                        
    <tr>
                          
    <td valign="top">
                            
    <asp:Label id="QuestionLabel" Text='<%# XPath("@Title")%>' runat="server" />
                          
    </td>
                        
    </tr>
                        
    <tr><td>
                          
    <asp:RadioButtonList ID="ChoicesRadioButtonList" runat="server" 
                            DataSource
    ='<%#XPathSelect("Choices/Choice") %>'
                            DataTextField="InnerText" DataValueField="InnerText" 
                            AutoPostBack="True"
                            ToolTip='
    <%"Question" + XPath("@ID"%>'
                            OnSelectedIndexChanged="ChoicesRadioButtonList_SelectedIndexChanged"/>
                        
    </td></tr>
                      
    </table>
                      
    <hr />
                    
    </ItemTemplate>
                
    </asp:DataList>
            
    </div>
        
    </form>
    </body>
    </html>
    2007年9月13日
  • 相关阅读:
    Sql Server 创建表(可重复执行--范本)
    Sql Server 存储过程(可重复执行--范本)
    table设置了colspan之后出现td宽度显示不正常
    textarea 自适应高度
    获取系统文件
    牛客网前端编程:计算给定数组 arr 中所有元素的总和
    牛客网前端编程:删除数组中特定元素
    牛客网前端编程:找出元素 item 在给定数组 arr 中的位置
    element+vue:将Unix时间戳转化标准格式
    vue-router使用
  • 原文地址:https://www.cnblogs.com/simhare/p/892058.html
Copyright © 2011-2022 走看看