1. 程式人生 > >ASP.NET中GridView使用簡單攻略

ASP.NET中GridView使用簡單攻略

資料查詢與展示GridView

GridView連線資料來源
編碼指定資料來源
this.GridView1.DataSource = 返回值為集合的方法;
this.GridView1.DataBind();
以下為使用資料來源控制元件
資料來源控制元件

控制元件名
說明

SqlDataSource
用來從SQL Server、ODBC、Oracle等資料來源中檢索資料。通過連線字串指定。

AccessDataSource
繼承自SqlDataSource,專門用於從Access資料庫中檢索資料

ObjectDataSource
能夠將來自業務邏輯層的資料物件與表示層中的資料繫結控制元件繫結,實現資料的顯示、編輯等任務

XmlDataSource
用於檢索和處理XML等分層資料。它可以從檔案、URL或者也包含XML內容的字串中載入XML資料

SiteMapDataSource
專門處理類似站點地圖的XML資料。預設情況下,資料來源好似以.sitemap為副檔名的XML檔案

常見資料繫結控制元件

控制元件名稱
說明

GridView
通過表格方式實現資料的展示,並整合編輯、分頁、排序等功能。

DetailsView
顯示單條記錄的詳細資訊,並支援對記錄的新增、刪除、修改等。

DropDownList
下拉選單控制元件

資料繫結控制元件繫結資料來源語法
資料繫結控制元件ID.DataSourceID = 資料來源控制元件ID;

繫結欄位

BoundField
用於顯示普通文字,是預設的資料繫結列的型別,一般自動生成的列就是該型別

GridView查詢所有資訊
步驟:1、新增GridView控制元件(資料)——配置好顯示列
2、在GridView 任務選擇資料來源下拉框中選擇新建資料來源——在資料來源配置嚮導的選擇資料來源型別中選擇物件——單擊確定
3、在選擇業務物件下拉框中選擇需要的業務邏輯層方法——單擊下一步——在定義資料方法中選擇SELECT——在選擇方法下拉框中選擇所需要的方法
GridView中新增新列(新增外來鍵列)
步驟:1、在GridView 任務——單擊新增新列——在新增欄位的選擇欄位型別下拉框中選擇TemplateField——並新增頁首文字——單擊確定
2、在GridView 任務——單擊編輯模板——在GridView 任務模板編輯模式的顯示下拉框中選擇剛才新增的新列——在ItemTemplate中新增一個Lable控制元件——在Lable任務中——單

擊編輯DataBindings——在Lable DateBindings對話方塊中為Text繫結資料——首先選中欄位繫結——在欄位繫結下拉框中選擇需要的欄位——然後在選擇自定義繫結進行程式碼表達

式修改對要顯示的外來鍵欄位物件進行修改來顯示
相應的屬性——單擊確定——在GridView 任務——單擊結束模板編輯

DropDownList控制元件繫結資料來源連線GridView控制元件根據條件顯示
步驟:1、新增DropDownList控制元件(標準)——在DropDownList任務——單擊選擇資料來源——在選擇資料來源下拉框中選擇新建資料來源——在資料來源配置嚮導的選擇資料來源型別中選擇

物件——單擊確定
2、在選擇業務物件下拉框中選擇需要的業務邏輯層方法——單擊下一步——在定義資料方法中選擇SELECT——在選擇方法下拉框中選擇所需要的方法
3、在 選擇要 DropDownList 中顯示的資料欄位下拉框中選擇所需的欄位
4、在 為DropDownList 的值選擇資料欄位下拉框中選擇所需的欄位(一般選擇ID欄位)
5、將DropDownList控制元件AutoPostBalck改為true
6、新增GridView控制元件(資料)——配置好顯示列
7、在GridView 任務選擇資料來源下拉框中選擇新建資料來源——在資料來源配置嚮導的選擇資料來源型別中選擇物件——單擊確定
8、在選擇業務物件下拉框中選擇需要的業務邏輯層方法——單擊下一步——在定義資料方法中選擇SELECT——在選擇方法下拉框中選擇所需要的代參方法——單擊下一步
9、在定義引數對話方塊中的引數源下拉框中選擇Control——在ControlID下拉框中選擇DropDownList控制元件名——在DefaultValue文字框中
可以給定DropDownList控制元件所選中的預設值(也可以不寫)——單擊完成

在後置程式碼中獲得選中的值DropDownList.SelectedValue.ToString();

DropDownList 的常用屬性和事件

屬性或事件
說明

SelectedItem 屬性
設定獲取下拉選單的選中項,該屬性的型別為System.Web.UI.WebControls.ListItem,所有列表控制元件(ListControl)中的項都是該型別。他常用的兩個屬性是Text和Value。

Value用於設定獲取項的值;Text用於設定獲取顯示文字

SelectValue 屬性
獲取選擇項的值,與SelectedItem.Value一致

DataTextField 屬性
獲取或設定提供列表項文字內容的資料來源的欄位

DataValueField 屬性
獲取設定提供列表項值內容的資料來源的欄位

AutoPostBack 屬性
當選中一個列表項時,DropDownList 控制元件狀態是否回發到伺服器。預設情況下時false

SelectIndexChanged 事件
當列表控制元件選定的內容改變併發回伺服器時發生。該事件僅當 AutoPostBack 屬性設定為true是有效

//手動繫結DropDownList
this.ddlType.DataSource = RoomTypeManager.GetAllRoomTypes();
this.ddlType.DataTextField = "TypeName"; 
this.ddlType.DataValueField = "TypeId";
ddlType.DataBind();

//向DropDownList新增第一項
ListItem list = new ListItem();
list.Text = "--選擇--";
list.Value = "0";
ddlType.Items.Insert(0, list);

GridView 刪除
步驟:1、先查詢所有資訊並顯示在GridView中
2、在 ObjectDataSource 任務——單擊配置資料來源——單擊下一步——在定義資料方法中選擇DELETE(不用設定ID因為ID是由DataKeyNames設定的)——在選擇方法下拉框中選擇所

需要的代參方法——單擊完成
3、在 GridView 屬性中——DataKeyNames屬性——單擊——在資料欄位集合編輯器中——在可用資料欄位——選擇ID——單擊確定
4、在GridView 任務——將啟用刪除勾上
5、加刪除頁首——在GridView 任務——單擊編輯列——在選定欄位中選定刪除——在屬性視窗中修改HeaderText屬性——單擊確定

GridView實現全選
步驟
1、在GridView 任務——選擇新增新列——在新增欄位的選擇欄位型別下拉框中選擇TemplateField——並新增頁首文字——單擊確定
2、在GridView 任務——單擊編輯模板——在GridView 任務模板編輯模式的顯示下拉框中選擇剛才新增的新列——在HeaderTemplate中新增一個HTML中的CheckBox並新增相應的文

字描述——在ItemTemplate中新增標準中的CheckBox——在GridView 任務——單擊結束模板編輯
3、在aspx原始碼中編寫JavaScript指令碼,如下:

<script type="text/javascript" language="javascript">
function GetAllCheckBox(CheckAll)
{  
    var items = document.getElementsByTagName("input");
    for(var i=0;i<items.length;i++)
    {
        if(items[i].type == "checkbox")
        {
        items[i].checked = CheckAll.checked;
        }    }   }
</script>

4、呼叫方法

<asp:TemplateField HeaderText="全選">
    <HeaderTemplate>
        <input id="cbAll" type="checkbox" onclick="GetAllCheckBox(this)"/>全選
    </HeaderTemplate>
    <ItemTemplate>
        <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
</asp:TemplateField>

5、在後置程式碼中獲得多選項的ID
for (int i = 0; i < this.GridView1.Rows.Count; i++) //this.GridView1.Rows.Count獲得本頁GridView控制元件上所有行數
{
//獲得GridView每一行中的控制元件名為checkselect的控制元件,也就是說獲得的是GridView每一行中的CheckBox控制元件
CheckBox cb = (GridView1.Rows[i].FindControl(“checkselect”)) as CheckBox;
if (cb.Checked == true) //判斷是否選中
{

//獲得選中行的第一列值(一般將第一列繫結為ID列),這樣就可以根據此處的Id進行刪改了
Convert.ToInt32(GridView1.Rows[i].Cells[0].Text.ToString());
} }
實現光棒
執行的事件是GridView的RowDataBound事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow) {
e.Row.Attributes.Add(“onmouseover”,”currentcolor=this.style.backgroundColor;this.style.backgroundColor=’#6699ff’”);
e.Row.Attributes.Add(“onmouseout”, “this.style.backgroundColor=currentcolor”);
} }
//根據修改、刪除做處理(後置程式碼中)
protectedvoidGVRoomTypes_RowCommand(objectsender, GridViewCommandEventArgs e)
{
string cmd = e.CommandName;
int typeId = Convert.ToInt32(e.CommandArgument);
if (cmd == “De”) {//刪除
RoomTypeManager.DeleteRoomTypeByTypeId(typeId); }
else if (cmd == “Ed”) { //修改
Page.Server.Transfer(“EditRoomType.aspx?typeId=” + typeId);

} }
GridView詳細顯示
步驟:1、在GridView 任務——選擇新增新列——在新增欄位的選擇欄位型別下拉框中選擇TemplateField——並新增頁首文字——單擊確定
2、在GridView 任務——單擊編輯模板——在GridView 任務模板編輯模式的顯示下拉框中選擇剛才新增的新列——在ItemTemplate中新增標準中的LinkButton——修改其ID屬性、

Text屬性並設定它的CommandArgument屬性(與此按鈕相關聯的命令引數)和CommandName屬性(與此按鈕相關的命令)
原始碼修改

<asp:TemplateField HeaderText="詳細">
    <ItemTemplate>
<asp:LinkButton ID="lkbParticular" runat="server" CommandArgument='<%# Eval("Id") %>' CommandName="xiang">詳細
    </ItemTemplate>
</asp:TemplateField>

3、在後置程式碼中編寫下列事件(行按鈕觸發事件)

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 

 {
        if (e.CommandName.Equals("引數")) //判斷事件觸發行中那個控制元件(有CommandName屬性設定)    {
            int id = Convert.ToInt32(e.CommandArgument); //獲得事件觸發行的ID
            Response.Redirect("#.aspx?id=" + id); //重定向到其他頁面        }    }

4、新增DetailsView控制元件——在DetailsView 任務——在選擇資料來源中選擇新建資料來源——在資料來源配置嚮導的選擇資料來源型別中選擇
物件——單擊確定
5、在選擇業務物件下拉框中選擇需要的業務邏輯層方法——單擊下一步——在定義資料方法中選擇SELECT——在選擇方法下拉框中選擇
所需要的代參方法——單擊下一步
6、在定義引數對話方塊中的引數源下拉框中選擇QueryString——在QueryStringField文字框中新增所要獲得引數(一般獲得id)——在
DefaultValue文字框中可以給定預設值(也可以不寫)——單擊完成
7、美化顯示——在DetailsView 任務——單擊編輯欄位——對欄位進行編輯——單擊確定
DetailsView 控制元件的常用屬性和事件

屬性或事件
說明

DefaultMode 屬性
設定獲取控制元件預設的狀態(模式)。該屬性為列舉值,分為 ReadOnly(顯示)、Edit(修改)和Insert(新增)

DataKey 屬性
資料主鍵

DataKeyNames 屬性
設定獲取一個字串,該字串包含資料來源中間的組合

ItemInserting 事件
單擊新增按鈕,執行新增方法之前執行

ItemInserted 事件
單擊新增按鈕,執行新增方法之後執行

ItemUpdating 事件
單擊更新按鈕,執行更新方法之前執行

ItemUpdated 事件
單擊更新按鈕,執行更新方法之後執行

資料繫結的寫法Eval和Bind的對比

Eval()
Bind()

Eval是指讀的,可實現格式化顯示
Bind支援讀/寫功能,可將跟新後的資料提交回伺服器。一般與TextBox等控制元件使用

在GredView設定方法
1、儲存:在GridView的DataKeyNames屬性設定ID
獲得:在GridView的RowDataBound事件裡 int ID = this.GridView1.DataKeys[e.Row.RowIndex].Value;
2、儲存:在模板列的專案模板中新增控制元件設定控制元件的CommandArgument=’<%# Eval(“Id”) %>’屬性
獲得:在GridView的RowCommand事件裡int id = Convert.ToInt32(e.CommandArgument

相關推薦

ASP.NETGridView使用簡單

資料查詢與展示GridView GridView連線資料來源 編碼指定資料來源 this.GridView1.DataSource = 返回值為集合的方法; this.GridView1.DataBind(); 以下為使用資料來源控制元件 資料來

ASP.NETGridView實現行滑鼠滑過及選擇變色

https://blog.csdn.net/u010568463/article/details/44835833   一、滑鼠滑過變色 只要要給GridView新增OnRowDataBound方法即可。 前臺程式碼: <asp:GridView ID="GridView

Asp.netGridView使用詳解(引)

GridView無程式碼分頁排序 GridView選中,編輯,取消,刪除 GridView正反雙向排序 GridView和下拉選單DropDownList結合 GridView和CheckBox結合 滑鼠移到GridView某一行時改變該行的背景色方法一 滑鼠移到GridView某一行時改變該

asp.netgridview設定邊框

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRo

asp.netGridView內部點選事件判斷是第幾行並獲取row資料

前臺:  <asp:GridView ID="grid" runat="server" class="com_table" AutoGenerateColumns="False">  &l

asp.netgridview匯出excel方法以及怎樣修改匯出的日期格式

<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeBehind="grid_excel_aspnet.aspx.cs" Inherits="FineUI

Asp.netGridView使用詳解(引)轉

GridView無程式碼分頁排序 GridView選中,編輯,取消,刪除 GridView正反雙向排序 GridView和下拉選單DropDownList結合 GridView和CheckBox結合 滑鼠移到GridView某一行時改變該行的背景色方法一 滑鼠移到GridView某一行時改變該

關於ASP.NETGridView控制元件的編輯和刪除問題!

第一種直接用SqlDataSource繫結實現編輯和刪除! <head runat="server">     <title>無標題頁</title> </head> <body>     <form id

ASP.NET使用UpdatePanel實現區域性非同步重新整理方法和(轉)

asp.net UpdatePanel實現非同步區域性重新整理 鑑於最近專案需要,研究了一下UpdatePanel控制元件的使用方法,現總結如下,可能有很多地方不足,還望大家斧正哦,此文的目的也是為了幫助UpdatePanel的初學者,也是為了給自己的學習之路

Asp.Net MVC WebAPI的建立與前臺Jquery ajax後臺HttpClient呼叫詳解 Asp.Net對操作Sql Server 簡單處理的SqlDB類

1、什麼是WebApi,它有什麼用途?           Web API是一個比較寬泛的概念。這裡我們提到Web API特指ASP.NET MVC Web API。在新出的MVC中,增加了WebAPI,用於提供REST風格的WebService,新生成的W

解決Asp.netGridView顯示資料欄位文字過長的辦法

在網頁顯示時,經常遇到表格或Gridview,Datalist等中資料欄位太長的問題。基本辦法有兩種:1,換行顯示;2,先隱藏一部分,當滑鼠移動到其位置時,自動將全部內容的顯示出來。本文主要講述如何採用ToolTip實現第二種解決辦法。其中第一種辦法,不建議採用,其原因:1,

ASP.NETJSONP的兩種實現以及其他跨域解決方案的簡單實現 ASP.NETJSONP的兩種實現以及其他跨域解決方案的簡單實現

ASP.NET中JSONP的兩種實現以及其他跨域解決方案的簡單實現    jQuery中JSONP的兩種實現方式:    都很簡單,所以直接上程式碼!    前臺程式碼如下: &l

ASP.NETGridView設定連結

在GridView中常常要設定連結,下面局裡說明。 前臺GridView程式碼如下: <asp:GridView ID="dataview" runat="server" Width="80%" AutoGe

asp.net使gridview控制元件內資料居中顯示

再前臺中新增一段<RowStyle HorizontalAlign="Center" /> 即可,或者將gridview控制元件的RowStyle.HorizontalAlign屬性設定為true即可 以上效果會使得控制元件中所有內容都為居中顯示

Asp.net,點選GridView表頭實現資料的排序

一、實現該功能的基本工作。 1、  先新增一個GridView,取名為gvData。 2、  設定該控制元件的屬性: 操作步驟如下。 設定屬性:       這4個屬性,還要設定該控制元件AllowSorting="True",5點缺一不可。 3、 

asp.net不顯示GridView的表頭

今日,專案(vs2008 + ie7)中的某個頁面因系統需要,不讓它顯示 gridview的表頭:        直接使用showHeader =false這個屬性竟然不起任何作用,表頭該有還是有,試了試在後臺.cs程式碼檔案中用gridview1.ShowHeader =

asp.net的cookie

再次 創建cookie bpa form void 並且 ima 顯示 red 一.cookie導讀,理解什麽是cookie 1.什麽是cookie:cookie是一種能夠讓網站服務器把少量數據(4kb左右)存儲到客戶端的硬盤或內存。並且讀可以取出來的一種技術。 2.

ASP.NET的驗證控件

spl 允許 需要 解決 ova 自帶 mar integer object ASP.NET提供了如下的控件:  RequiredFieldValidator: 字段必填 (ControlTovalidate設定要驗證的控件)  RangeValidator: 值在給定的最

ASP.NET的母版頁

建議 cli 路徑 pla 自動 webapp 一個 服務 如果 添加一個"母版頁",使用<asp:ContentPlaceHolder>挖坑,新建的母版頁已經自動設置了兩個ContentPlaceHolder創建使用母版頁的具體頁面,WebSite是新建"We

ASP.NET的Request、Response、Server對象

.html languages asa 地址欄 判斷 nsf 一次 服務 tco Request對象 Response.Write(Request.ApplicationPath) //應用根路徑Request.AppRelativeCurrentExecutionFile