AJAX ControlToolkit-PopupControlExtender 3

來源:互聯網
上載者:User

PopupControlExtender是一個可以控制Popup載體的組件,它本身並不會產生Popup控制項,它的作用是控制Popup載體,例如panel,div等的顯示、消失並獲得Popup載體中控制項的傳回值,返回到目標控制項中去。下面我們一齊來學習一下PopupControlExtender的使用方法。

 

 

 

注意:UpdatePannel一定要放在Panel裡面,否則運行一次之後會發生JS異常。另外一定要將RadioButtonList的AutoPostBack屬性設為True,否則就沒有響應了。如下所示:

<asp:Panel ID="Panel1" CssClass="popupbox" runat="server" Height="50px" Width="125px">                <asp:UpdatePanel ID="UpdatePanel1" runat="server">                    <ContentTemplate>                        <asp:RadioButtonList AutoPostBack="true" ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">                            <asp:ListItem Text="廣州市"></asp:ListItem>                            <asp:ListItem Text="佛山市"></asp:ListItem>                            <asp:ListItem Text="深圳市"></asp:ListItem>                            <asp:ListItem Text="東莞市"></asp:ListItem>                        </asp:RadioButtonList>                    </ContentTemplate>                </asp:UpdatePanel>            </asp:Panel>

準備好所有代碼之後我們還需要建立一個CSS樣式,否則不能控制Popup載體的顯示和消失了,樣式檔案如下:

.popupbox{    visibility:hidden;    border-color:#000;    background:#ff9900;    font-size:12px;}

注意:一定要加visibility:hidden,否則Popup就不能隱藏了,這也是CSS樣式的關鍵作用。

第二步:配置PopupControlExtender

由於PopupControlExtender需要配置的屬性太多,我們切換到原始碼視窗進行設定,如下所示:

<ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" TargetControlID="TextBox1" PopupControlID="Panel1" CommitScript="e.value;" Position="Bottom" CommitProperty="value" runat="server"></ajaxToolkit:PopupControlExtender>

 

TargetControlID是指PopupControlExtender的目標控制項ID,即擷取傳回值的控制項ID,這裡應該是TextBox1,因為我們從RadioButtonList選擇好的項需要在TextBox1中顯示。PopupControlID是指Popup載體控制項的ID,關於Popup載體的解析在文章的開始部分已有說明,這裡應該是Panel1。CommitScript是指選擇完成後調用的Js指令碼,這裡寫e.value意思是返回選擇項的value值。大家可以適當擴充一下,例如"'你已選擇了' + e.value; ",注意:這裡的文法一定要嚴格遵守Js的書寫格式,別忘了最後要寫分號。Position指Popup載體出現在目標控制項的位置,大家根據喜好選擇。CommitProperty是指Popup載體中控制項的傳回值屬性,這裡就是指RadioButtonList的值的屬性名稱,大家可以改成Text試試。

第三步:編寫常規代碼

到了這一步就離完成不遠了,我們只需要在cs檔案中指定一下RadioButtonList的傳回值。雙擊RadioButtonList1切換到CS代碼視窗,編寫代碼,如下所示:

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e){     if(RadioButtonList1.SelectedValue != null)    {PopupControlExtender.GetProxyForCurrentPopup(this.Page).Commit(RadioButtonList1.SelectedValue);     }     RadioButtonList1.ClearSelection();}

代碼很簡單,這裡就不作解析了。注意:寫這段代碼之前一定要先using AjaxControlToolkit

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.