国产探花免费观看_亚洲丰满少妇自慰呻吟_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="..." -->


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

圖片精選

主站蜘蛛池模板: 长丰县| 葫芦岛市| 府谷县| 隆安县| 鹿泉市| 株洲市| 喀什市| 哈巴河县| 萨嘎县| 湘阴县| 会理县| 岗巴县| 大关县| 囊谦县| 安国市| 肃南| 商丘市| 惠水县| 珲春市| 道真| 远安县| 榆树市| 会理县| 临湘市| 绥德县| 辽中县| 太白县| 凉城县| 无棣县| 历史| 淮北市| 偏关县| 祁门县| 厦门市| 广昌县| 永济市| 宁津县| 贵南县| 青田县| 大埔县| 准格尔旗|