国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP+學習筆記(三)

2019-11-18 22:13:31
字體:
來源:轉載
供稿:網友
8).數據訪問的定制
    除了DataGrid之外,還有DataList和Repeater,可以更加靈活使用,不過你需要提供模板,
用控件templates
    他們也有屬性DataSource,可以賦予一個ICollection對象,ItemTemplate控件指定每一個記錄
顯示的樣子,例:
    <asp:Repeater id="MyRepeater" runat="server">
        <template name="itemtemplate">
            <%# DataBinder.Eval(Container.DataItem,"name")%>
        </template>
    </ASP:Repeater>
    其中:Container表示控件之外的第一個含System.Web.UI.INamingContainer的控件,本例中
是一個System.Web.UI.WebControls,RepeaterItem,包含了一個DataItem的屬性。
    另外,還可以使用HeaderTemplate和FooterTemplate。
    DataList有更強的控制能力,比如他的RepeaterCoumns屬性可指定一行重復幾次,RepeatDirection
指定方向。
    插入LinkButton控件可以引起select事件,DataList中可設OnSelectedIndexChanged屬性指定事件Handler.
    例:
    <asp:DataList id="dl" OnSelectedIndexChanged="dl_Select">
        <asp:LinkButton Command="select" runat="server">
            <%#DataBinder.Eval(Container.DataItem."title")%>
        </asp:LinkButton>
        ......
        
    <script language="c#" runat="server">
    void dl_Select(Object sencer,EventArgs E){
    ......
    }
    </script>
    
    注意,可能有多個事件,比如Edit/Update/Cancel,所以可以用一個統一的OnItemCommand來處理,
憑Command判斷到底是什么事件。例:
    void dl_select(Object src,DataListCommandEventArgs E){
        String command=((LinkButton)E.CommandSource).Text;
        switch(command)
        {case "discuss":.....break;
        case "ratings":......break;
        }
    }
    <asp:LinkButton Command="ratings" runat="server">
        View ratings
    </asp:LinkButton>
    更妙的是,DataList還可以支持Edit和Select模板??!
    例:
    void MyDataList_Edit(Object sender,DataListCommandEventArgs E){
        MydataList.EditItemIndex = (int)E.Item,ItemIndex;
        //設定誰被選中進行編輯
        ......//重新幫定
        }
    void MyDataList_Update(Object sender,DataListCommandEventArgs E){
        String PRice = ((HtmlInputText)E.Item.FindControl("edit_price")).Value;
        ......
        MyDataList.EditItemIndex=-1;
        }
        ......
    <template name="edititemtemplate">
        ......
        <b>Price:</b><input id="edit_price" type="text">
        .
        .
        .
    這可以很方便地用在系統后臺維護上。
    問題,上例中模板中的控件剛好只有一個,所以FindControls起作用了,但如果有多個呢?
    可以通過DataList的Items集合來遍歷,如:
    for(int i=0;i<MyDataList.Items.count;i++)
        String isChecked = ((CheckBox)MyDataList.Items[i].FindControls("save")).checked.ToString();
        
    <template name="itemtemplate">
        <asp:checkbox id="save" runat=server>
    </template>
    
    
9).商業控件
   。應用的bin目錄
   在asp中的組件需要用regsvr32注冊,不方便遠程管理,ASP+中只需要放到應用的/bin目錄下即可。
   <%Import NameSpace="helloworld"%>引入名稱空間,config文件來指定使用哪些控件,例:
   <configuration>
       <compilation>
           <assemblies>
               <add assembly="System.Data"/>
               <add assembly="System.Web.Services"/>
               <add assembly="System.Drawing"/>
               <add assembly="*" />
           </assemblies>
       </compilation>
   </configuration>
   
   其中,前三個是全局的,最后一個是管bin目錄下的。
   
10).寫控件
    略。
    注意需要從Controls派生(System.Web.UI.Controls)
    
11).WebForms控件參考
    兩大類,
    一是System.Web.UI.HtmlControls,以Html打頭,多為Web頁面上顯示的。
    二是System.Web.UI.WebControls,附加的,如DataGrid等。
    具體略。
    
12).WebForms表達式參考
    <%%>代碼塊,<%=%>也支持的。
    <script runat="server">
    服務器控件用:<asp:Lable .....runat="server">
    Html服務器控件用: <span id="Message" runat="server">
    數據幫定:<%# %>
    對象:<object runat="server">,如:
        <object id="items" class="System.collections.ArrayList" runat="server">
    服務器端注釋:<%--  comment --%>
    服務器端包含:<--#include file="..." -->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 梨树县| 新郑市| 商南县| 内乡县| 堆龙德庆县| 云梦县| 伊宁县| 抚远县| 夹江县| 巧家县| 江门市| 嘉荫县| 石家庄市| 元朗区| 抚州市| 天峻县| 崇阳县| 和硕县| 高碑店市| 绥芬河市| 乌兰县| 娱乐| 阳泉市| 调兵山市| 梅州市| 宁乡县| 永康市| 河间市| 前郭尔| 湖南省| 泰来县| 城步| 尉氏县| 司法| 廉江市| 西充县| 新蔡县| 长泰县| 锦州市| 怀来县| 志丹县|