亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

asp.net學習之DataList控件

2019-11-14 15:48:18
字體:
來源:轉載
供稿:網友

asp.net學習之DataList控件

 

     DataList控件與Repeater控件一樣由模板驅動,與Repeater控件不同的是: DataList控件默認輸出是一個HTML表格.DataList在輸出時已經在相應的模板上套上了表格標簽,而Repeater則是模板是什么樣,輸出就是什么樣. 

1. DataList顯示數據

例1:使用DataList顯示數據    


<asp:DataList ID="DataList1" runat="server" DataSourceID="srcMovies">
    <ItemTemplate>
        <h1><%#Eval("Title") %></h1>
        <b>Directed by:</b><%#Eval("Director") %>
            <br />
        <b>Descr    </ItemTemplate>
</asp:DataList> 

    以上的例子,在Repeater控件顯示數據時也是使用這樣的格式,但是輸出的HTML就有點不同了,DataList輸出了一張HTML表格: 

2. 表格布局(Table)和流布局(Flow)

      ● RepeatLayout : 來確定是在表中顯示還是在流布局中顯示. 可選值為Flow和Table 
    如果在上個例子中加入RepeatLayout屬性為Flow,則輸出如下所示: 


3. 多列顯示數據

   從例1看出,默認的DataList是使用一行顯示一項數據,但是可以通過以下屬性讓其一行顯示多個數據項: 
     ● RepeatColumn   : 需要顯示的列數 
     ● RepeatDirection : 輸出網格時的方向,可以為Horizontal(橫),Vertical(縱) 
例2:多列顯示數據: 


<asp:DataList ID="DataList1" runat="server" RepeatColumns="3" GridLines="Both" DataSourceID="srcMovies">
    <ItemTemplate>
        <h1><%#DataBinder.Eval(Container.DataItem,"Title") %></h1> <!-- 為種綁定數據的方法與上面一種是一樣的,只是寫法不同 -->
        <b>Directed by:</b><%#Eval("Director") %>
            <br />
        <b>Description:</b><%#Eval("Description") %>
    </ItemTemplate>
</asp:DataList> 

 

4. DataList支持的模板

    除了ItemTemplate、AlternatingItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate外。 
    DataList還支持另外兩個模板: 
      ● EditItemTemplate : 當行進入編輯狀態時顯示的樣式 
      ● SelectedItemTemplate : 當列被選中時顯示的樣式 
例3:通過FooterTemplate進行數據匯總


<script runat=”server”>
decimal totals;
PRotected void dlstMovies_ItemDataBound(object sender, DataListItemEventArgs e)
{
    // 在ItemDataBound中找到某個列值的方法就是使用DataBinder.Eval。
    // e.Item就是一個DataList的Container。
    if (e.Item.DataItem != null)
        totals += (decimal)DataBinder.Eval(e.Item.DataItem, "BoxOfficeTotals");
    if (e.Item.ItemType == ListItemType.Footer)
    {
        Label lblTotal = (Label)e.Item.FindControl("lblTotal");
        lblTotal.Text = totals.ToString("c");
    }
}
</script>

<asp:DataList id="dlstMovies" DataSourceID="srcMovies" GridLines="Horizontal"
        UseaccessibleHeader="true" OnItemDataBound="dlstMovies_ItemDataBound" CSSClass="movies" Runat="server" >
    <HeaderTemplate>
        Movie Box Office Totals
    </HeaderTemplate>
    <ItemTemplate>
        <%#Eval("Title")%>:
        <%#Eval("BoxOfficeTotals","{0:c}") %>
    </ItemTemplate>
    <FooterTemplate>
        <b>Total:</b>
        <asp:Label id="lblTotal" Runat="server" />
    </FooterTemplate>
</asp:DataList> 

 

5. DataList控件選擇數據項

    DataList有個只讀屬性,名為SelectedValue,通過它,可以知道哪個數據項被選中了。當然,需要事先設置好DataList的CommandName為Select才可以進行選擇。 
例4:使用DataList控件作為菜單使用


<asp:DataList id="dlstMovieCategories" DataSourceID="srcMovieCategories" DataKeyField="Id"
        GridLines="Both" CssClass="movies" Runat="server">
    <ItemTemplate>
        <asp:LinkButton id="lnkMovie" Text=’<%#Eval("Name") %>’ CommandName="Select" Runat="server" />
    </ItemTemplate>
</asp:DataList>

<asp:DataList id="dlstMovieDetails" DataSourceID="srcMovieDetails" Runat="server">
    <ItemTemplate>
        <h1><%#Eval("Title")%></h1>
        Directed by: <%#Eval("Director") %>
            <br />
        Box Office Totals: <%#Eval("BoxOfficeTotals","{0:c}") %>
    </ItemTemplate>
</asp:DataList>

<asp:SqlDataSource id="srcMovieCategories" ConnectionString="<%$ ConnectionStrings:Movies %>"
    SelectCommand="SELECT Id, Name FROM MovieCategories" Runat="server" />
<asp:SqlDataSource id="srcMovieDetails" ConnectionString="<%$ ConnectionStrings:Movies %>"
    SelectCommand="SELECT Title,Director,BoxOfficeTotals FROM Movies WHERE CategoryId=@CategoryId" Runat="server">
    <SelectParameters>
        <asp:ControlParameter Name="CategoryId" ControlID="dlstMovieCategories" PropertyName="SelectedValue" />
    </SelectParameters>
</asp:SqlDataSource>

 


6. DataList的事件

    DataList比較強大。它支持編輯、更新、刪除、取消,雖然相比于GridView,它要寫更多的代碼,但是可定制性也更高了。 
    DataList包括以下幾個事件: 
       ● CancelCommand: 對 
DataList 控件中的某項單擊 Cancel 按鈕時發生?!緮祿椫幸幸粋€Button,且CommandName為Edit】 
       ● EditCommand : 單擊 Edit 按鈕時發生。[數據項中要有一個Button,且CommandName為Edit] 
       ● UpdateCommand : 單擊更新按鈕時發生 [數據項中要有一個Button,且CommandName為Edit] 
       ● DeleteCommand : 單擊Delete按鈕時發生 [數據項中要有一個Button,且CommandName為Delete] 
       ● SelectIndexChanged: 單擊Select按鈕時發生 [數據項中要有一個Button,且CommandName為Select] 
       ● ItemCommand: 單擊任何按鈕時發生 [數據項中要有一個Button,且CommandName為任意值] 
    另外,還包括已經在Repeater控件中介紹過的DataBinding、ItemCreated、ItemDataBound事件。 
    以上,具體的,可以查看MSDN中的一些例子,比較詳細。 

    對于DataList來說,可以設定其DataKeys屬性,所以在一些事件中(如ItemCommand),可以直接使用 e.Item.ItemIndex來訪問一個數據項的關鍵字索引。對于在什么事件中使用ItemIndex進行取得,什么事件中要用 DataBinder.Eval(Container.DataItem,"Id")這樣的方式,要區分清楚【一般來說,在ItemDataBound事件時,用DataBinder方法獲得,在ItemCommand事件中,用ItemIndex來獲取】


    下面是MSDN中的一篇東東,介紹如何響應綁定控件中的按鈕事件:

復制代碼
    如果您使用的是帶模板的數據綁定控件(例如,DataList 或 FormView 控件),且模板包含 Button、LinkButton 或 ImageButton Web 服務器控件,則按鈕可以將它們的 Click 事件轉發給包含控件。這樣,您可以包含按鈕以實現尚未為數據綁定控件定義的自定義功能,例如,編輯、刪除、更新和取消。

響應數據綁定控件中的按鈕事件
      1. 在控件模板中添加 Button、LinkButton 或 ImageButton。
      2. 將按鈕的 CommandName 屬性設置為標識其功能的字符串,如“Sort”或“Duplicate”。
      3. 創建用于控件的 ItemCommand 事件的方法。在該方法中,執行下列操作: 
           a. 檢查事件參數對象的 CommandName 屬性來查看傳入什么字符串。
           b. 為用戶單擊的按鈕執行相應的邏輯。

    下面的示例演示響應 DataList 控件中的按鈕單擊的方法。在該示例中,ItemTemplate 包含顯示購物車的 ImageButton 控件。該按鈕發送命令 AddToCart。事件處理程序確定所單擊的是哪個按鈕,如果是購物車按鈕,則執行相應的邏輯。
<script runat="server">
private void DataList1_ItemCommand(object source, 
    DataListCommandEventArgs e)
{
    if (e.CommandName == "AddToCart")
    {
        // Add code here to add the item to the shopping cart.
        // Use the value of e.Item.ItemIndex to find the data row
        // in the data source.
    }
}
</script>
復制代碼

 

5. 格式化DataList

    對于默認的DataList輸出,肯定是比較難看的,所以要對它套用CSS式樣,以輸出符合我們意愿的格式.DataList提供了一些屬性,通過它們,可以變更DataList的樣式 
      ● CssClass : DataList使用的CSS 
      ● AlternatingItemStyle : 交替行使用的樣式 
      ● EditItemStyle : 編輯行使用的樣式 
      ● FooterStyle : 頁腳樣式 
      ● HeaderStyle : 頁眉樣式 
      ● ItemStyle  : 普通數據行樣式 
      ● SelectedItemStyle : 選中項的樣式 
      ● SpearatorStyle : 間隔行樣式 
      ● GridLines : 單元格邊框格式,可以有"None,Horizontal,Vertical,Both” 
      ● ShowFooter : 是否顯示頁腳 
      ● ShowHeader : 是否顯示頁眉 
      ● UseAccessibleHeader : 在頁眉行的單元格中使用HTML標簽<th>來替換<td>標簽.


上一篇:SQLiteDeveloper工具

下一篇:類與對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人亚洲综合| 欧美亚洲国产另类| 精品成人国产在线观看男人呻吟| 91精品久久久久久久| 在线成人免费网站| 欧美激情久久久久久| 亚洲黄色免费三级| 欧美猛男性生活免费| 57pao成人永久免费视频| 日韩av电影手机在线观看| 日韩在线观看免费网站| 成人免费黄色网| 久久精品国产电影| 欧洲美女7788成人免费视频| 国产精品日本精品| 国产一区二区精品丝袜| 亚洲午夜av电影| 国产中文字幕日韩| 欧美在线一级va免费观看| 2019中文字幕在线| 亚洲精品98久久久久久中文字幕| 国产又爽又黄的激情精品视频| 亚洲第一网站免费视频| 日韩美女在线观看| 亚洲free嫩bbb| 国产一区二区三区免费视频| 中文在线资源观看视频网站免费不卡| 国产精品十八以下禁看| 91精品国产99| 日韩在线播放av| 亚洲精品小视频| 欧美日韩性视频| 亚洲国产精品va在看黑人| 久久最新资源网| 欧美床上激情在线观看| 91av福利视频| 日韩在线免费视频观看| 中文字幕亚洲欧美| 91a在线视频| 成人激情视频小说免费下载| 96精品久久久久中文字幕| 日韩午夜在线视频| 91成人在线观看国产| 亚洲国产三级网| 久久久久久中文| 欧美日韩激情网| 欧美超级免费视 在线| 草民午夜欧美限制a级福利片| 成人性生交大片免费观看嘿嘿视频| 九九久久国产精品| 日韩欧美精品免费在线| 亚洲福利小视频| 日韩欧美aⅴ综合网站发布| 成人免费视频网址| 国产精品入口夜色视频大尺度| 色青青草原桃花久久综合| 亚洲一区二区自拍| 高清日韩电视剧大全免费播放在线观看| 欧美大片免费观看在线观看网站推荐| 欧美丰满少妇xxxxx| 久久视频在线免费观看| 精品在线观看国产| 国产精品日本精品| 精品久久久av| 国产成人精品亚洲精品| 91牛牛免费视频| 2018日韩中文字幕| 成人黄色免费片| 97人人爽人人喊人人模波多| 国产成人av在线播放| 亚洲免费视频网站| 久久久国产精品免费| 在线观看欧美成人| 亚洲国产成人久久综合一区| 亚洲欧美成人精品| 欧美日韩国产成人高清视频| 538国产精品一区二区在线| 国产亚洲精品美女久久久久| 久久久精品国产一区二区| 亚洲精品动漫久久久久| 性欧美在线看片a免费观看| 亚洲91av视频| 久久777国产线看观看精品| 隔壁老王国产在线精品| 日韩国产在线播放| 福利二区91精品bt7086| 一区二区三区日韩在线| 好吊成人免视频| 国产精品三级在线| 97精品视频在线| 亚洲丝袜一区在线| 亚洲免费伊人电影在线观看av| 久久久久北条麻妃免费看| 91高清视频在线免费观看| 国产精品久久久久久久久影视| 九九视频直播综合网| 久久国产精品久久国产精品| 久久久久日韩精品久久久男男| 国产男女猛烈无遮挡91| 亚洲综合自拍一区| www.日本久久久久com.| 久久精品视频导航| 欧美日韩裸体免费视频| 日韩不卡中文字幕| 狠狠色香婷婷久久亚洲精品| 欧美极品少妇全裸体| 国产日产久久高清欧美一区| 成人免费在线视频网站| 国产精品一二三视频| 97色在线观看免费视频| 97人洗澡人人免费公开视频碰碰碰| 欧美精品情趣视频| 国产欧美欧洲在线观看| 国产精品久久久久久久9999| 热99精品只有里视频精品| 日韩欧美成人免费视频| 亚洲欧美三级伦理| 亚洲毛片在线免费观看| 中文亚洲视频在线| 国产在线视频欧美| 国产精品久久二区| 久久韩国免费视频| 97在线看免费观看视频在线观看| 日韩精品视频在线| 国产精品久久久久久久久影视| 国产日韩在线看| 国产精品吴梦梦| 亚洲欧美一区二区三区在线| 欧美国产日韩一区二区三区| 久久久久久久久久久91| 日韩激情第一页| 亚洲精品欧美一区二区三区| 亚洲精品成人网| 欧美黑人又粗大| 成人深夜直播免费观看| 中文字幕亚洲情99在线| 欧美黑人狂野猛交老妇| 国产精品久久久999| 国产欧美在线视频| 久久国产一区二区三区| 亚洲另类欧美自拍| 欧美日韩另类字幕中文| 亚洲欧美一区二区精品久久久| 8x拔播拔播x8国产精品| 国产成人欧美在线观看| 日韩免费在线观看视频| 欧美国产日韩一区二区在线观看| 日韩中文字幕视频| 欧美性20hd另类| 91豆花精品一区| 尤物99国产成人精品视频| 午夜欧美大片免费观看| 国产精品久久77777| 久久99久国产精品黄毛片入口| 国产精品三级久久久久久电影| 91色视频在线观看| 亚洲人成网在线播放| 亚洲成人精品久久久| 国产精品稀缺呦系列在线| 国产亚洲精品一区二区| 国产精品永久免费视频| 亚洲视频在线免费看| 精品亚洲夜色av98在线观看| 中国人与牲禽动交精品|