一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

asp.net學習之GridView七種字段

 goodwangLib 2019-01-06

  asp.net中GridView綁定到數(shù)據(jù)源時,可以自動顯示數(shù)據(jù)源的各個字段。只要設定其AutoGenerateColumns為TRUE即可。但這,自動顯示有其不好的一面,因為不能自義定控制顯示的樣式。 
    解決以上的辦法就是指定需要GridView顯示的字段,GridView控件支持以下七種類型的Field: 
      ● BoundField   :  將數(shù)據(jù)項顯示為文本 
      ● CheckBoxField : 將數(shù)據(jù)項顯示為復選框 
      ● CommandField : 使用鏈接來支持編輯、刪除或選中行 
      ● ButtonField : 將數(shù)據(jù)項顯示為按鈕(ImageButton、LinkButton、Button) 
      ● HyperLinkField : 將數(shù)據(jù)項顯示為超鏈接 
      ● ImageField : 將數(shù)據(jù)項顯示為圖片 
      ● TemplateField: 自定義數(shù)據(jù)項的外觀 
   以上,各Field的父類都為DataControlFiled.所以,下面先談談DataControlField。 

1. DataControlField

     DataControlField 類用作所有數(shù)據(jù)控件字段類型的基類。數(shù)據(jù)綁定控件使用數(shù)據(jù)控件字段表示數(shù)據(jù)字段。 
     DataControlField定義了一些共公的屬性,其子Field都可以使用。 
       ● HeaderText/HeaderImageUrl : 標題欄字段/標題欄的圖像URL 
       ● FooterText : 腳注項的文本 
       ● AccessibleHeaderText : 一個字符串,表示由屏幕閱讀器讀取的縮寫文本。 
       ● Control: 獲取對Field內(nèi)數(shù)據(jù)控件的引用 
       ● InsertVisible: 插入新記錄時,此列是否可見。(不能在GridView控件中使用) 
       ● HeaderStyle/FooterStyle/ItemStyle/ControlStyle : 標題項/腳注項/數(shù)據(jù)項/子WEB控件的樣式 
       ● SortExpression : 為數(shù)據(jù)項指定排序表達式 

2. 使用BoundField

     GridView在顯示狀態(tài),BoundField總是直接把數(shù)據(jù)項顯示為文本;在編輯狀態(tài),BoundFiled將數(shù)據(jù)項顯示為一個單行的文本框 
     2.1 BoundField幾個種要屬性: 
        除了其父類DataControlField的幾個屬性外,還有以下幾個屬性 
        ● DataField : 顯示的字段 
        ● DataFormatString : 字段格式化 
        ● HtmlEncode / HtmlEncodeFormatString: 獲取或設置一個值,該值指示在 
BoundField 對象中顯示字段值之前,是否對這些字段值進行 HTML 編碼。 
      注: FormatString經(jīng)常用來格式化數(shù)字、日期、字符串、自定義類型。 
            關(guān)于字符格式化,參見以下MSDN:
http://msdn.microsoft.com/zh-cn/library/26etazsy.aspx, 
            或:
http://www.cnblogs.com/tianhao960/archive/2006/06/22/433255.html 
例1:使用GridView綁定字段 

 

復制代碼
復制代碼

<asp:GridView id=”grdMovies” DataSourceID=”srcMovies” AutoGenerateColumns=”false” Runat=”server”>
    <Columns>
        <asp:BoundField DataField=”Title” HeaderText=”Movie Title” />
        <asp:BoundField DataField=”Director” HeaderText=”Movie Director” />
        <asp:BoundField DataField=”BoxOfficeTotals” DataFormatString=”{0:c}”
                HtmlEncode=”false” HeaderText=”Box Office Totals” />
    </Columns>
</asp:GridView> 
復制代碼
復制代碼


      2.2 除了以上這些屬性外,還有以下幾個屬性比較有用 
        ● ApplyFormatInEditMode: 若要在編輯模式中將格式化字符串應用到字段值,則為 true;否則為 false。默認為 false。 
        ● Readonly:  防止該數(shù)據(jù)項進入編輯模式。 
        ● NullDisplayText : 當數(shù)據(jù)項為NULL時顯示的文本 

3. CheckBoxField

    CheckBoxField會在相應的列內(nèi)顯示一個復選框,在沒有進入編輯模式時,其復雜框處于禁用狀態(tài)。 
    CheckBoxField通過設置 
Text 屬性,可以在每一個復選框旁邊顯示一個標題     

4. CommandField

     使用CommandField可以定制GridView控件中Edit、Delete、Update、Cancel、Select等按鈕的外觀。 
     需要使用CommonField時,不要啟用GridView的AutoGenerateEditButton和AutoGenerateDeleteButton屬性。因為可以直接使用CommandField 
     CommandField的一些屬性: 
       ● ButtonType:指定Button類型、可以有Button、Image、Link類型 
       ● CancelText/CancelImageUrl: Cancel按鈕中的文本/圖像URL 
       ● DeleteText/DeleteImageUrl: Delete按鈕中的文本/圖像URL 
       ● InsertText/InsertImageUrl: Insert按鈕中的文本/圖像URL 
       ● EditText/EditImageUrl: Edit按鈕中的文本/圖像URL 
       ● UpdateText/UpdateImageUrl: Update按鈕中的文本/圖像URL 
       ● SelectText/SelectImageUrl: Select按鈕中的文本/圖像URL 
       ● NewText/NewImageUrl: New按鈕中的文本/圖像URL 
       ● ShowEditButton/ShowDeleteButton/ShowCancelButton/ShowSelectButton/ShowInsertButton: 是否顯示相應按鈕 
       ● CauseValidation:點擊按鈕時是否啟用校驗 
       ● ValidationGroup: 指定和編輯按鈕相關(guān)驗證控件組的名稱 

5. ButtonField

     使用ButtonField可以在GridView中顯示一個按鈕,使用它可以完成自定義或標準的編輯命令 
     點擊GridView中的ButtonField字段,會觸發(fā)GridView中的OnRowCommand事件??梢栽谶@個事件中處理相關(guān)的命令事件。 
     ButtonField有以下幾個屬性 
       ● ButtonType : Button類型,可以為Button、Image、LinkButton 
       ● CauseValidation : 指定按鈕點擊時是否引發(fā)驗證 
       ● CommandName : 指定ButtonField關(guān)聯(lián)的標準編輯命令,可以為Delete、Edit、Update、Cancel?;蛘?,可以自定義 
       ● DataTextField/DataTextFormatString : 指定按鈕文本的數(shù)據(jù)項/數(shù)據(jù)項格式 
       ● Text : 按鈕文本 
       ● ValidationGroup : 和按鈕相關(guān)驗證控件組的名稱 
     通過CommandName屬性可以使用BuffonField關(guān)聯(lián)標準的編輯命令,例如給CommandName屬性賦"Delete"就可以得到一個具有刪除功能的按鈕 
例2:一個通過點擊GridView中的Button,進行數(shù)據(jù)更新的例子 

復制代碼
復制代碼

<asp:GridView id=”grdMovieCategories” DataSourceID=”srcMovieCategories” DataKeyNames=”Id,Position”
         AutoGenerateColumns=”false” OnRowCommand=”grdMovieCategories_RowCommand” Runat=”server”>
    <Columns>
        <asp:ButtonField Text=”Move Up” CommandName=”Up” />
        <asp:ButtonField Text=”Move Down” CommandName=”Down” />
        <asp:BoundField DataField=”Position” HeaderText=”Position” />
        <asp:BoundField DataField=”Name” HeaderText=”Category Name” />
    </Columns>
</asp:GridView>
<asp:SqlDataSource id=”srcMovieCategories” ConnectionString=”<%$ ConnectionStrings:Movies %>”
    SelectCommand=”SELECT Id, Name, Position FROM MovieCategories ORDER BY Position”
    UpdateCommand=”UPDATE MovieCategories SET Position=@Position WHERE Id=@Id”
    Runat=”server”>
    <UpdateParameters>
        <asp:Parameter Name=”Id” />
        <asp:Parameter Name=”Position” />
    </UpdateParameters>
</asp:SqlDataSource> 
復制代碼
復制代碼

 

6. 使用HyperLinkField

    HyperLinkField用來鏈接到其他頁面。當創(chuàng)建兩具主從表單的時候,HyperLinkField非常有用。 
    HyperLinkField具有以下屬性: 
       ● DataNavigateUrlFields: 在DataNavigateFormatString中使用的列名稱 
       ● DataNavigateFormatString: 格式鏈接字符串 
       ● DataTextField/DataTextFormatString: 超鏈接文本/超鏈接文本格式化 
       ● NavigateUrl: 鏈接到其它頁面的URL 
       ● Target : 鏈接目標,可以使用:_blank/_parent/_self/_top 
       ● Text: 超鏈接的文本 
例3:HyperLinkField使用舉例,在一個頁面中使用frames技術(shù),可以不用整頁刷新顯示主從表 
==FrameMaster.aspx== 

復制代碼
復制代碼

<asp:GridView id=”grdMovies” DataSourceID=”srcMovies” AutoGenerateColumns=”false” Runat=”server”>
    <Columns>
        <asp:HyperLinkField HeaderText=”Movies” DataTextField=”Title” DataNavigateUrlFields=”Id”
                DataNavigateUrlFormatString=”FrameDetails.aspx?id={0}”  Target=”FrameDetails” />
    </Columns>
</asp:GridView>
<div class=”column”>
<iframe name=”FrameDetails” id=”FrameDetails”></iframe>
</div> 
復制代碼
復制代碼


==FrameDetails.aspx== 

復制代碼
復制代碼

<asp:DetailsView id=”dtlMovie” DataSourceID=”srcMovieDetails” Runat=”server” />
<asp:SqlDataSource id=”srcMovieDetails” ConnectionString=”<%$ ConnectionStrings:Movies %>”
      SelectCommand=”SELECT Title, Director, InTheaters FROM Movies WHERE Id=@MovieId”  Runat=”server”>
    <SelectParameters>
         <asp:QueryStringParameter Name=”MovieId” QueryStringField=”id” />
    </SelectParameters>
</asp:SqlDataSource> 
復制代碼
復制代碼

 

7. 使用ImageField

    ImageFIeld用來顯示保存在服務器上的圖片,不能用ImageField來顯示保存在數(shù)據(jù)庫上的圖片。 
    ImageField有以下幾個屬性: 
      ● AlternateText : 預備文本 
      ● DataAlternateTextField : 使用指定列的值作為預備文本 
      ● DataAlternateTextFormatString : 預備文本格式字符串 
      ● DataImageUrlField : 存放圖片路徑的列名 
      ● DataImageUrlFormatString : 圖片路徑格式字符串 
      ● NullImageUrl : 指定預備圖片 
例4: 使用ImageField,實現(xiàn)一個簡單的相冊 

復制代碼
復制代碼

<script runat=”server”>
protected void frmPhoto_ItemInserting(object sender, FormViewInsertEventArgs e)
{
    // Get the FileUpload control
    FileUpload upPhoto = (FileUpload)frmPhoto.FindControl(“upPhoto”);
    srcImages.InsertParameters[“FileName”].DefaultValue = upPhoto.FileName;
    string savePath = MapPath(“~/Photos/” + upPhoto.FileName);
    // Save contents to file system
    upPhoto.SaveAs(savePath);
}
</script>

<asp:GridView id=”grdImages” DataSourceID=”srcImages” AutoGenerateColumns=”false”
        ShowHeader=”false” Runat=”server”>
    <Columns>
        <asp:ImageField DataImageUrlField=”FileName” DataAlternateTextField=”AltText”
             DataImageUrlFormatString=”~/Photos/{0}” ControlStyle-Width=”200px” />
    </Columns>
</asp:GridView>
<asp:SqlDataSource id=”srcImages” ConnectionString=”<%$ ConnectionStrings:Photos %>”
       SelectCommand=”SELECT FileName, AltText FROM Photos” InsertCommand=”INSERT Photos (FileName, AltText)
                                 VALUES (@FileName, @AltText)”   Runat=”server”>
    <InsertParameters>
        <asp:Parameter Name=”FileName” />
    </InsertParameters>
</asp:SqlDataSource>

<asp:FormView id=”frmPhoto” DefaultMode=”Insert” DataSourceID=”srcImages”
         OnItemInserting=”frmPhoto_ItemInserting” Runat=”server”>
    <InsertItemTemplate>
        <asp:FileUpload id=”upPhoto” Runat=”server” />
        <asp:TextBox id=”txtAltText” Text=’<%# Bind(“AltText”) %>’ Columns=”50” Runat=”server” />
       <asp:Button id=”btnInsert” Text=”Add New Photo” CommandName=”Insert” Runat=”server” />
    </InsertItemTemplate>
</asp:FormView> 
復制代碼
復制代碼

 

8.使用TemplateField


    使用TemplateField可以在GridView控件的數(shù)據(jù)列中添加任何內(nèi)容,例如HTML、數(shù)據(jù)綁定表達式或者ASP.NET控件等。 
   可以使用TemplateField定制用戶界面或者給被編輯字段添加驗證 
    TempateField支持以下6種類型的模板 
       ● ALternatingItemTemplate : 間隔行模板 
       ● EditItemTemlpate : 編輯行模板 
       ● FooterTemplate : 腳注模板 
       ● HeaderTemplate : 標題模板 
       ● InsertItemTemplate: 插入行模板(不支持GridView控件) 
       ● ItemTemplate: 每個顯示行模板 
例5:TemplateField舉例, 

復制代碼
復制代碼

<asp:GridView id=”grdMovies”   DataSourceID=”srcMovies” DataKeyNames=”Id”
       AutoGenerateColumns=”false” AutoGenerateEditButton=”true” Runat=”server”>
    <Columns>
        <asp:TemplateField HeaderText=”Title”>  <!-- Title 列-->
            <ItemTemplate> <%# Eval(“Title”) %> </ItemTemplate> <!-- 注意,是用Eval綁定字綁,而沒有BoundField屬性了 -->
            <EditItemTemplate>  <!-- 編輯時顯示的模板 -->
                <asp:TextBox id=”txtTitle” Text='<%# Bind(“Title”) %>' Runat=”server” /> <!-- 使用Bind,雙向綁定 -->
                <-- 編輯時對txtTitle進行驗證 -->
                <asp:RequiredFieldValidator id=”valTitle” ControlToValidate=”txtTitle” Text=”(required)” Runat=”server” />
            </EditItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText=”Category”>  <!-- Category列 -->
            <ItemTemplate> <%# Eval(“Name”) %> </ItemTemplate>
            <EditItemTemplate>
                  <asp:DropDownList id=”ddlCategory” DataSourceID=”srcMovieCategories” DataTextField=”Name”
                          DataValueField=”Id” SelectedValue='<%# Bind(“CategoryId”) %>' Runat=”server” />
            </EditItemTemplate>
        </asp:TemplateField>
</Columns>
</asp:GridView>
復制代碼

 

復制代碼

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩国产午夜福利| 国产欧美日韩不卡在线视频| 天海翼高清二区三区在线| 91偷拍视频久久精品| 人体偷拍一区二区三区| 日韩人妻有码一区二区| 国产日韩在线一二三区| 欧美一区二区三区五月婷婷 | 国产精品一区二区三区激情| 欧美字幕一区二区三区| 蜜桃av人妻精品一区二区三区 | 欧美精品一区久久精品| 欧美人妻少妇精品久久性色| 日本欧美三级中文字幕| 日韩欧美一区二区久久婷婷| 在线观看视频国产你懂的| 国产精品福利一二三区| 欧洲精品一区二区三区四区| 好吊日在线观看免费视频| 四十女人口红哪个色好看| 加勒比系列一区二区在线观看 | 精品国产成人av一区二区三区| 日韩欧美三级中文字幕| 国产香蕉国产精品偷在线观看| 久久精品国产在热久久| 黑人粗大一区二区三区| 日韩中文字幕在线不卡一区| 五月激情婷婷丁香六月网| 好东西一起分享老鸭窝| 扒开腿狂躁女人爽出白浆av| 亚洲一区二区欧美激情| 色综合久久超碰色婷婷| 国产精品伦一区二区三区四季| 五月婷婷欧美中文字幕 | 亚洲国产四季欧美一区| 日韩不卡一区二区三区色图| 欧美成人欧美一级乱黄| 91精品欧美综合在ⅹ| 亚洲一区二区三区中文久久| 五月天丁香婷婷狠狠爱| 粉嫩国产一区二区三区在线|