總結(jié).NET開發(fā)中ADO.NET的應(yīng)用(6)_.Net教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:關(guān)于Gridview的多種使用方法總結(jié)asp.net中 Gridview的多種使用方法總結(jié),具體如下面 截圖,并包括詳細(xì)源代碼注釋,需要的請(qǐng)下載。 1:在Gridview中無須編寫后臺(tái)代碼,直接實(shí)現(xiàn)增除刪改 2:在Gridview中添加新記錄 3:在Gridview中實(shí)現(xiàn)編輯和更新操作 4:在Gridview中實(shí)現(xiàn)一次性更新所有記錄
◆ 在程序中訪問DataGrid中的內(nèi)容
DataTable中有數(shù)據(jù)行DataRow,而在DataGrid中沒有行這個(gè)對(duì)象,這讓人感到很不習(xí)慣,也覺得不夠自然。在DataTable中,一張表的層次結(jié)構(gòu)很清楚,DataTable.Rows屬性可以得到這張表所包含的所有行的行集,通過行集的索引DataRowCollection[index]就可以得到具體的一個(gè)DataRow,數(shù)據(jù)行的索引DataRow[index]又可以得到這一行的具體某一列的內(nèi)容。
而DataGrid中就沒有這么方便了,DataGrid只有兩個(gè)屬性可用,DataGrid.CurrentCell 屬性,此屬性返回一個(gè)DataGridCell類型的結(jié)構(gòu),DataGridCell結(jié)構(gòu)指明此Cell所在的行號(hào)和列號(hào)。還有一個(gè)DataGrid.Item 屬性,此屬性有兩個(gè)重載:
public object this[DataGridCell] //獲取或設(shè)置指定的 DataGridCell 的值
public object this[int, int] //獲取或設(shè)置位于指定行和列的單元格的值
可見,DataGrid中訪問都是針對(duì)某個(gè)Cell進(jìn)行的。經(jīng)常的,我們需要從當(dāng)前的Cell獲得此Cell所對(duì)應(yīng)的DataRow,比如界面中可能先選中DataGrid的某一行,或者某一個(gè)Cell,然后點(diǎn)擊一個(gè)按鈕,彈出一個(gè)新的窗口,窗口中顯示這一行的所有單元的內(nèi)容,并允許修改單元的值,最后保存關(guān)閉窗口。這就需要從當(dāng)前的DataGrid所在的單元找到其所對(duì)應(yīng)的DataTable所在的行和列。
而DataGrid中顯示的數(shù)據(jù)可能經(jīng)過DataView的DataView.RowFilter屬性、DataView.RowStateFilter屬性的過濾,還可能經(jīng)過DataGrid本身根據(jù)各個(gè)列的正向和反向排序,所以DataGrid的CurrentRowIndex屬性所指示的行索引跟其對(duì)應(yīng)的DataTable的行索引有很大的機(jī)會(huì)是不一樣的,不能夠根據(jù)DataGrid的CurrentRowIndex去獲取其對(duì)應(yīng)的DataTable的行。
這時(shí)BindingManagerBase又將發(fā)揮作用了,我們可以先建立一個(gè)對(duì)應(yīng)此DataGrid綁定的數(shù)據(jù)源的BindingManagerBase,這樣這個(gè)BindingManagerBase就可以管理這個(gè)數(shù)據(jù)源。
//設(shè)置DataGrid的數(shù)據(jù)源
dataGrid1.DataSource = myDataSet;
dataGrid1.DataMember = "customers";
//建立同DataGrid同樣數(shù)據(jù)源的BindingManagerBase
BindingManagerBase myBindingManagerBaseParent =
this.BindingContext[myDataSet,"customers"];
一旦建立了這個(gè)BindingManagerBase,就可以通過BindingManagerBase的當(dāng)前行的屬性來獲取當(dāng)前數(shù)據(jù)源的記錄:
//BindingManagerBase的Current返回?cái)?shù)據(jù)源的對(duì)象,對(duì)于綁定到DataView的數(shù)據(jù)源,需要將此對(duì)象顯式
//的轉(zhuǎn)換為 DataRowView類型
DataRowView myDataRowView =(DataRowView) myBindingManagerBaseParent.Current
這樣,我們就可以從當(dāng)前的Cell得到此Cell所在的DataRowView,DataRowView又可以通過DataRowView.Row屬性及其方便的得到DataRow。
如果還要進(jìn)一步,想要得到此Cell所對(duì)應(yīng)的DataTable的具體單元,就是不光要得到DataRow,還要知道這個(gè)Cell所對(duì)應(yīng)的列。
這又分兩種情況:
一是DataGrid未使用TableStyles來設(shè)置DataGrid要顯示的列和格式,數(shù)據(jù)源DataView的所有列都將按照DataView本身的順序顯示出來,這樣可以直接取得對(duì)應(yīng)的列索引:
//獲取當(dāng)前DataGrid單元的列索引,這個(gè)索引跟DataTable的索引是一樣的
Int ColumnNumber = DataGrid.CurrentCell.ColumnNumber;
另一種情況是DataGrid使用了TableStyles來設(shè)置DataGrid要顯示的列和格式,這樣DataGrid單元的列索引跟DataTable的索引就可能是不一樣的了,這就要用DataGrid的TableStyles了:
Int ColumnNumberDataGrid = DataGrid.CurrentCell.ColumnNumber;
//獲取當(dāng)前DataGrid單元的列索引
Int ColumnNumberDataTable =
DataGrid.TableStyles[0].GridColumnStyles[ColumnNumberDataGrid].MappingName
分享:String.Empty、NULL、“”的不同之處在asp.net(c#)中 String.Empty、NULL、 3個(gè)語法 經(jīng)常使用,作用是判斷字符串是否為空。 本文就它們彼此的不同之處做一粗略說明。 string.Empty就相當(dāng)于 一般用于字符串的初始化 比如: stringa; Console.WriteLine(a);//這里會(huì)報(bào)錯(cuò),因?yàn)闆]有初始化a 而下
相關(guān).Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 解析ASP.NET Routing對(duì)請(qǐng)求的處理方式
- C#中連接兩個(gè)DataTable,相當(dāng)于Sql的InnerJoin
- ASP.NET2.0向其它網(wǎng)頁(yè)傳遞信息的方法
- 談.net 中的職責(zé)鏈模式的使用
- 淺析asp.net 和 access 聯(lián)合開發(fā)的分頁(yè)類
- 經(jīng)典教程:用.net動(dòng)態(tài)創(chuàng)建類的實(shí)例
- C#中調(diào)用Windows API時(shí)的數(shù)據(jù)類型對(duì)應(yīng)關(guān)系
- 基于.NET平臺(tái)的分層架構(gòu)實(shí)戰(zhàn)(三)架構(gòu)概要設(shè)計(jì)
- ASP.Net中利用CSS實(shí)現(xiàn)多界面兩法
- asp.net C#實(shí)現(xiàn)下載文件的六種方法實(shí)例
- 相關(guān)鏈接:
- 教程說明:
.Net教程-總結(jié).NET開發(fā)中ADO.NET的應(yīng)用(6)
。