版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院-6.1 完成課程信息的維護(hù)完成課程信息的維護(hù)-6.2 完成教師信息的維護(hù)完成教師信息的維護(hù)6.3 完成課程安排的維護(hù)完成課程安排的維護(hù)L6.1 數(shù)據(jù)源控件數(shù)據(jù)源控件L6.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院完成后的數(shù)據(jù)維護(hù)界面如圖6.1、圖6.2、圖6.3所示。圖6.1 課程信息維護(hù)曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院圖6.2 教師信息維護(hù)曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院圖6.3 排課信息維護(hù)曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院采用SqlDataSource+ ListView的方式來完成課程信息的維護(hù),用SqlDataSource實現(xiàn)與數(shù)據(jù)庫之間的訪問,用ListView
2、提供所需的數(shù)據(jù)查詢、修改、插入、刪除視圖。1規(guī)劃課程信息維護(hù)界面規(guī)劃課程信息維護(hù)界面課程信息維護(hù)頁面的基本布局如圖6.4所示。圖6.4 課程信息維護(hù)頁面的基本布局曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院2設(shè)計數(shù)據(jù)維護(hù)界面設(shè)計數(shù)據(jù)維護(hù)界面(1)打開前面創(chuàng)建的網(wǎng)站項目,右擊“解決方案資源管理器”內(nèi)的Admin文件夾,選擇“添加新項”,在彈出的窗口中選擇“Web窗體”,命名為“course.aspx”,語言選擇“Visual C#”,選中“選擇母版頁”復(fù)選框,完成后單擊“添加”按鈕,在出現(xiàn)的窗口中選擇Admin文件夾下的adminMasterPage.master,單擊“確定”按鈕完成新頁面的創(chuàng)建。(2)打開We
3、b.sitemap文件,在標(biāo)記內(nèi)部加入如下的內(nèi)容:。(3)切換到course.aspx頁面的設(shè)計視圖,打開屬性窗口,在窗口的下拉框中選擇“Document”,設(shè)置StyleSheetTheme屬性為“主題1”。(4)切換到“源”視圖,把光標(biāo)定位到ID為“Content2”的標(biāo)記內(nèi),雙擊“工具欄”中HTML內(nèi)的“DIV”,并設(shè)置其ID為“content”,設(shè)置Style屬性值為“border-style: solid; border-width: 1pt”。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(5)打開頁面的“源”視圖,把光標(biāo)定位到ID為“content”層內(nèi)部,雙擊“工具欄”中HTML內(nèi)的“DIV”,在
4、頁面上插入一個層,設(shè)置其ID屬性為“search”。切換到“設(shè)計”視圖,把光標(biāo)定位到此層內(nèi),單擊“應(yīng)用樣式”窗口中的“innerLayout”樣式規(guī)則,給該層應(yīng)用樣式規(guī)則。(6)把光標(biāo)定位到ID為“search”的DIV內(nèi),如圖6.5所示向DIV內(nèi)添加控件。圖6.5 搜索欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控件的屬性,如表6.1所示??丶愋拖嚓P(guān)屬性和值TextboxID=“ searchTextBoxcourseName”TextboxID=“ searchTextBoxcourseScore”ButtonID=“ searchButton”Width= “80 px”表
5、6.1 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(7)在“源”視圖中,把光標(biāo)定位到ID為“search”的DIV標(biāo)記的下部,雙擊“工具欄”中HTML中的DIV,在光標(biāo)處插入一個DIV。選中此DIV,設(shè)置其ID為“result”,在“應(yīng)用樣式”窗口中,單擊“innerLayout”樣式規(guī)則,給該層應(yīng)用樣式規(guī)則。(8)把光標(biāo)定位到ID為“result”的DIV內(nèi),如圖6.6所示向DIV內(nèi)添加控件。圖6.6 搜索結(jié)果欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控件的屬性,如表6.2所示??丶愋拖嚓P(guān)屬性和值LabelID=“ LabelSearchResult”,Text=“”ListVi
6、ewID=“ListViewResult”DataPagerID=“ DataPagerResult”SqlDataSourceID=“SqlDataSourceResult”表6.2 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(9)選中“SqlDataSourceResult”控件,單擊右上角的“SqlDataSource任務(wù)”中“配置數(shù)據(jù)源”項,在彈出的“配置數(shù)據(jù)源”對話框的下拉框中選擇“SqlServer2005ConnectionString”,單擊“下一步”按鈕,進(jìn)入“配置Select語句”對話框,在“指定來自表或視圖的列”的下拉框選中“Course”表,在列中,選中courseID、c
7、ourseName和courseScore,則所生成的Select語句為“SELECT courseID, courseName, courseScore FROM Course”,單擊“下一步”按鈕,進(jìn)入“測試查詢”窗口。單擊“測試查詢”按鈕,查看查詢出的結(jié)果是否滿足要求,如果滿足,則單擊“完成”按鈕;如果不滿足,則返回上一個窗口進(jìn)行修改。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(10)選中“SqlDataSourceResult”控件,單擊右上角的“SqlDataSource任務(wù)”中的“配置數(shù)據(jù)源”項,在彈出的“選擇您的數(shù)據(jù)連接”對話框中單擊“下一步”按鈕,進(jìn)入“配置Select語句”對話框,選擇“指定
8、自定義SQL語句和存儲過程”,單擊“下一步”按鈕,在彈出的“定義自定義語句和存儲過程”對話框在中分別選擇“UPDATE”、“INSERT”、“DELETE”選項卡,在對應(yīng)的文本框中輸入如下SQL的語句:UPDATE Course SET courseName = courseName,courseScore = courseScore WHERE courseID = courseIDINSERT INTO Course(courseName,courseScore) VALUES(courseName,courseScore)DELETE FROM Course WHERE courseID
9、=courseID單擊“下一步”、“完成”按鈕。(11)選中“ListView”控件,單擊右上角“ListView任務(wù)”,在“選擇數(shù)據(jù)源”下拉框中選擇“SqlDataSourceResult”控件。單擊“配置ListView”按鈕,在彈出的“配置ListView”對話框中選擇“網(wǎng)格”布局,選擇“專業(yè)型”樣式,并選中“啟用編輯”、“啟動插入”、“啟動刪除”和“啟動分頁”選項,單擊“確定”按鈕完成ListView配置。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(12)打開“ListViewResult”的屬性窗口,設(shè)置其PagedControlID為“ListView-Result”,PageSize為“10”,
10、設(shè)置后的界面效果如圖6.7所示。圖6.7 頁面外觀曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院3編寫本頁面所需的相關(guān)代碼編寫本頁面所需的相關(guān)代碼(1)單擊搜索欄中的按鈕后,會根據(jù)用戶錄入的信息進(jìn)行查詢,并把查詢的結(jié)果顯示在下部的GridView中,因此“搜索”按鈕的Click事件需要添加代碼。雙擊“搜索”按鈕,在對應(yīng)的事件中添加如下的代碼:/首先定義需要查詢的內(nèi)容,具體查詢的條件根據(jù)用戶的錄入自動生成string sql = SELECT courseID, courseName, courseScore FROM Course where 1=1 ;/如果錄入課程名稱,則根據(jù)課程名稱進(jìn)行模糊查找if (thi
11、s.searchTextBoxcourseName.Text != ) sql += and courseName LIKE %+ this.searchTextBoxcourseName.Text.Trim() +%;/如果錄入課程學(xué)分,則根據(jù)課程學(xué)分查找if (this.searchTextBoxcourseScore.Text != ) sql += and courseScore = + this.searchTextBoxcourseScore.Text.Trim() + ;this.SqlDataSourceResult.SelectCommand = sql;曲阜師范大學(xué)計算機(jī)科
12、學(xué)學(xué)院(2)頁面初次加載的時候,GridView中只顯示數(shù)據(jù)庫的前6條記錄,查看更多的數(shù)據(jù),需要通過“查詢”按鈕完成,因此需要在Page_load事件中添加如下的代碼:if (SessionuserType.ToString() != 0) /如果不是管理員則返回 Response.Write(history.go(-1);); /重定向到前面頁面/頁面第一次請求的時候執(zhí)行if (!Page.IsPostBack) string sql = SELECT TOP 6 courseID,courseName,courseScore FROM Course ORDER BY courseID DE
13、SC; this.SqlDataSourceResult.SelectCommand = sql; 曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(3)為了能夠在Label中顯示查詢出的記錄條數(shù),需要在SqlDataSourceResult控件的Selected事件中添加代碼:選中“SqlDataSourceResult”控件,右擊此控件并選擇“屬性”選項,在打開的屬性窗口中單擊頂部 圖標(biāo),在列表中雙擊“Selected”,進(jìn)入其“Selected事件”,并在內(nèi)部添加如下的代碼:/當(dāng)SqlDataSource執(zhí)行完查詢操作后所觸發(fā)的一個事件protected void SqlDataSourceResult_Se
14、lected(object sender, SqlDataSourceStatusEventArgs e) /參數(shù)e的AffectedRows屬性表示查詢出的記錄數(shù)目 this.LabelSearchResult.Text = e.AffectedRows.ToString();曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院4在瀏覽器中瀏覽本頁在瀏覽器中瀏覽本頁(1)切換到“設(shè)計”視圖,右擊頁面并選擇“在瀏覽器中查看”,頁面如圖6.8所示。圖6.8 課程維護(hù)界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(2)在courseName和courseScore下部的文本框中輸入相應(yīng)的課程名稱和課程學(xué)分,單擊“插入”按鈕,則一條記錄就插
15、入到數(shù)據(jù)庫中,連續(xù)插入幾個課程后,界面如圖6.9所示。圖6.9 課程維護(hù)界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(3)單擊某條記錄的“編輯”按鈕,則該行將變成可編輯狀態(tài),修改結(jié)束后,單擊“更新”按鈕可以把修改后的內(nèi)容插入到數(shù)據(jù)表中,也可以單擊“取消”按鈕取消本次的修改操作,如圖6.10所示。單擊某條記錄左部的“刪除”按鈕,則可以把本條記錄從數(shù)據(jù)表內(nèi)刪除。圖6.10 修改視圖(4)在搜索欄中“課程名”處輸入課程名稱的部分文字,單擊“搜索”按鈕就可以查詢出對應(yīng)的課程,也可以在“學(xué)分”處輸入一個學(xué)分,則將查詢出本學(xué)分所有的課程;也可以同時通過“課程名”和“學(xué)分”進(jìn)行查詢。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院采用SqlD
16、ataSource+ListView的方式比較適合字段比較少的表進(jìn)行數(shù)據(jù)維護(hù),當(dāng)字段很多的時候,編輯界面會顯示很長,因此需要采用專門用于編輯的控件FormView控件控件。這里采用GridView+SqlDataSource+FormView的方式完成教師信息的維護(hù),其中GridView用于表格方式顯示出多條記錄,SqlDataSource用于實現(xiàn)與數(shù)據(jù)庫之間的訪問,F(xiàn)ormView用于實現(xiàn)單條記錄的查看、修改、插入等操作。1規(guī)劃教師信息維護(hù)界面規(guī)劃教師信息維護(hù)界面教師信息維護(hù)頁面的基本布局如圖6.11所示。查詢條件區(qū)域查詢結(jié)果顯示區(qū)域信息詳情/插入和修改區(qū)圖6.11 頁面基本布局曲阜師范大學(xué)
17、計算機(jī)科學(xué)學(xué)院2設(shè)計數(shù)據(jù)維護(hù)界面設(shè)計數(shù)據(jù)維護(hù)界面(1)在前面所創(chuàng)建的網(wǎng)站項目中打開teacher.aspx頁面的的“源”視圖,刪除ID為“Content2”的標(biāo)記內(nèi)的前面所輸入的“內(nèi)容頁內(nèi)容”。把光標(biāo)定位到ID為“Content2”的標(biāo)記內(nèi),雙擊“工具欄”中HTML內(nèi)的“DIV”,在光標(biāo)處插入一個層,并設(shè)置其ID為“content”,設(shè)置Style屬性值為“border-style: solid; border-width: 1pt”。(2)把光標(biāo)定位到ID為“content”的層內(nèi),雙擊“工具欄”中HTML內(nèi)的“DIV”,在頁面上插入一個層,設(shè)置其ID屬性為“search”。把光標(biāo)定位到此層
18、內(nèi),單擊“應(yīng)用樣式”窗口中的“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(3)把光標(biāo)定位到ID為“search”的DIV內(nèi),按照如圖6.12所示向DIV內(nèi)添加控件。從左到右分別設(shè)置DIV內(nèi)控件的屬性,設(shè)置如表6.3所示???件 類 型相關(guān)屬性和值TextboxID=“searchTextBoxteaName”TextboxID=“searchTextBoxteaTelphone”ButtonID=“searchButton”Width= “80 px”圖6.12 搜索欄設(shè)計表6.3 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(4)按照上面的添加DIV方法在ID
19、為“search”的DIV標(biāo)記的下部添加一個DIV,其ID為“result”,在“應(yīng)用樣式”窗口中,單擊“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。(5)把光標(biāo)定位到ID為“result”的DIV內(nèi),按照如圖6.13所示向DIV內(nèi)添加控件。圖6.13 搜索結(jié)果欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控件的屬性,設(shè)置如表6.4所示???件 類 型相關(guān)屬性和值LabelID=“LabelSearchResult”ButtonID=“AddButton”,Width=“80 px”GridViewID=“GridViewResult”Width=“100%”AllowPa
20、ging=“True”SqlDataSourceID=“SqlDataSourceResult”表6.4 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(6)打開“SqlDataSourceResult”控件屬性窗口,單擊“ConnectionString”屬性右邊的下拉框,設(shè)置其值為“SqlServer2005ConnectionString”。單擊SelectQuery右邊的按鈕,打開“命令和參數(shù)編輯器”窗口,在窗口內(nèi)輸入如下的Sql語句:SELECT top (5) teaID, teaName, teaTelphone, teaPhone,teaEmail,teaType FROM Teach
21、er單擊DeleteQuery右邊的按鈕,打開“命令和參數(shù)編輯器”窗口,在窗口內(nèi)輸入如下的Sql語句:DELETE FROM Teacher WHERE teaID= teaID(7)選中GridViewResult,單擊右上角“GridView任務(wù)”中的“選擇數(shù)據(jù)源”下拉框,選擇“SqlDataSourceResult”控件。單擊“刷新架構(gòu)”項重新刷新架構(gòu),單擊“GridView任務(wù)”中的“編輯列”項,打開“字段”對話框,在“選中的字段”列表中選中“teaID”,在右欄中設(shè)置其HeaderText屬性為“編號”,分別設(shè)置其他字段的HeaderText為“姓名”、“電話”、“手機(jī)”、“郵箱”和
22、“類型”。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(8)在“可用字段”窗口中選中“TemplateField”字段,并單擊“添加”按鈕把其添加到“選定的字段”中,并設(shè)置其HeaderText為“操作”。在“選定的字段”列表中選中“類型”字段,單擊右邊的“將此字段轉(zhuǎn)換為TemplateField”按鈕,單擊“確定”按鈕關(guān)閉對話框。(9)右擊GridView控件,選擇“編輯字段”內(nèi)的“Column5-類型”,選中“ItemTemplate”中的Label控件,單擊右上角的 圖標(biāo),在打開的“Label任務(wù)”中單擊“編輯DataBindings”項,彈出“Label1 DataBinding”對話框,選中左側(cè)的“T
23、ext”,單擊右側(cè)的“自定義綁定”,把“Bind(teaType)”改為“teaType(Eval(teaType)”,單擊“確定”按鈕,關(guān)閉對話框。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(10)右擊GridView控件,選擇“編輯字段”內(nèi)的“Column6-操作”,“ItemTemplate”中添加3個LinkButton控件,按表6.5設(shè)置屬性,設(shè)置后的效果如圖6.14所示??丶愋拖嚓P(guān)屬性和值LinkButton1ID=“LinkButton,Text=“詳情”,CommandName=“MyDetail”LinkButton2ID=“LinkButton,Text=“編輯”,CommandName
24、=“MyModify”LinkButton3ID=“ LinkButton,Text=“刪除”,CommandName=“MyDelete”表6.5 控件屬性設(shè)置圖6.14 操作視圖設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(11)切換到“源”視圖,在ID為“result”的DIV標(biāo)記的下部添加一個DIV,設(shè)置其ID為“Operation”,在“應(yīng)用樣式”窗口中,單擊“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。(12)把光標(biāo)定位到ID為“Operation”的DIV內(nèi),按照如圖6.15所示向DIV內(nèi)添加控件。圖6.15 操作欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控件的屬性,設(shè)
25、置如下表6.6所示:控 件 類 型相關(guān)屬性和值FormViewID=“FormViewOperation”,Width=“100%”SqlDataSourceID=“SqlDataSourceOperation”表6.6 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(13)切換到“設(shè)計”視圖,打開“SqlDataSourceOperation”的屬性窗口,設(shè)置其ConnectionStrings為“SqlServer2005ConnectionString”,設(shè)置其SelectQuery為:SELECT teaID,teaName,teaSex,teaTelphone,teaType,teaPhon
26、e,teaEmail,teaPassword FROM Teacher設(shè)置InsertQuery為:INSERT INTO Teacher(teaName,teaSex,teaTelphone,teaType,teaPhone,teaEmail,teaPassword,)VALUES(teaName,teaSex,teaTelphone,teaType,teaPhone,teaEmail,teaPassword)設(shè)置UpdateQuery為:UPDATE Teacher SET teaName=teaName,teaSex=teaSex,teaTelphone=teaTelphone,teaT
27、ype=teaType,teaPhone=teaPhone,teaEmail=teaEmail,teaPassword=teaPassword where teaID=teaID曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(14)選中FormViewOperation,在“FromView任務(wù)”中,設(shè)置數(shù)據(jù)源為“SqlData-SourceOperation”,單擊“刷新架構(gòu)”按鈕,顯示如圖6.16所示的界面。圖6.16 ItemTemplate模板曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(15)右擊選擇“FormViewOperation”“編輯模板”“ItemTemplate”,切換到“Item-Template”模板,
28、在模板頂部插入一個DIV,通過“應(yīng)用樣式”設(shè)置其樣式為“innerLayout”,把光標(biāo)定位到本層內(nèi),選擇“表”“插入表”菜單項,彈出“插入表格”對話框,設(shè)置行數(shù)為“4”,列數(shù)為“4”,其他采用默認(rèn)值,插入表后,將ItemTemplate模板內(nèi)的內(nèi)容按照如圖6.17所示擺放。圖6.17 ItemTemplate模板設(shè)計效果曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(16)在ItemTemplate模板中選擇teaSexLabel的Label任務(wù)中的“編輯DataBinding”選項,通過自定義綁定,設(shè)置Text屬性綁定為“teaSex(Eval(teaSex)”。采用同樣的方式,設(shè)置teaTypeLabel的
29、Text屬性綁定為“teaType(Eval(teaType)”。(17)在ItemTemplate模板內(nèi)分別選中表格內(nèi)的第一列或第三列,在“應(yīng)用樣式”窗口中選中“.right”樣式。按照同樣的方法分別選中表格內(nèi)的第二列或第四列,在“應(yīng)用樣式”窗口中選中“.left”樣式,應(yīng)用樣式后的外觀如圖6.18所示,右擊“FormViewOperation”,選擇“結(jié)束模板編輯”,完成ItemTemplate模板制作。圖6.18 ItemTemplate模板樣式效果曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(18)以同樣的方式編輯FormViewOperation的InsertItemTemplate模板和EditIt
30、emTemplate模板,插入層,插入表格,重排元素的位置,設(shè)置后的外觀如圖6.19、圖6.20所示。圖6.19 InsertItemTemplate模板樣式效果曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院圖6.20 EditItemTemplate模板樣式效果曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(19)打開FormViewOperation的InsertItemTemplate模板,刪除教師性別右側(cè)的文本框,插入一個“RadioButtonList”控件,通過Items屬性插入兩項,設(shè)置第一項的Text屬性為“男”,Value屬性為“0”;設(shè)置第二項的Text屬性為“女”,Value屬性為“1”,設(shè)置其RepeatDi
31、rection為“Horizontal”。在“RadioButtonList任務(wù)”中選擇“編輯DataBindings”項,在彈出的對話框中設(shè)置SelectedValue屬性綁定到“teaSex”字段,格式為“0:G”,按照同樣的方式修改EditItemTemplate模板內(nèi)的教師性別。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(20)打開FormViewOperation的InsertItemTemplate模板,刪除教師性別右側(cè)的文本框,插入一個“RadioButtonList”控件,通過Items屬性插入兩項,設(shè)置第一項的Text屬性為“管理員”,Value屬性為“0”;設(shè)置第二項的Text屬性為“教師
32、”,Value屬性為“1”,設(shè)置其RepeatDirection為“Horizontal”。在“RadioButtonList任務(wù)”中選擇“編輯DataBindings”,在彈出的對話框中設(shè)置SelectedValue屬性綁定到“teaType”字段,按照同樣的方式修改EditItemTemplate模板內(nèi)的教師類別。設(shè)置后的InsertItemTemplate模板效果如圖6.21所示。圖6.21 InsertItemTemplate模板最終效果曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院3編寫本頁面所需的相關(guān)代碼編寫本頁面所需的相關(guān)代碼(1)默認(rèn)情況下,GridView內(nèi)只顯示5條教師信息,單擊“搜索”按鈕后
33、,應(yīng)該根據(jù)用戶的錄入情況進(jìn)行搜索,把搜索出的所有信息顯示到GridView內(nèi)。雙擊“搜索”按鈕,添加Click事件代碼,代碼如下所示。(2)GridView控件內(nèi)模板字段內(nèi)的控件不包含所在行的索引值,當(dāng)其觸發(fā)RowCommand事件時無法獲取由哪行觸發(fā)的,因此需要通過程序代碼在該行創(chuàng)建的時候為其設(shè)置CommandArgument值,以及在RowCreated事件中為所需要的行添加,這里需要為上文所添加的LinkButton1、LinkButton2、LinkButton3添加CommandArgument值,右擊“GridViewResult”,選擇“屬性”,雙擊“事件”內(nèi)的RowCreate
34、d事件,進(jìn)入其編寫代碼位置。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院在其中加入如下的代碼: /如果行的類型是數(shù)據(jù)行,需要為此行內(nèi)模板列內(nèi)的控件設(shè)置CommandArgument值/此值可能用來判斷用戶單擊的是哪行內(nèi)的控件 if (e.Row.RowType = DataControlRowType.DataRow) /在當(dāng)前行內(nèi)獲取到控件的引用,通過行的索引設(shè)置控件的CommandArgument LinkButton LinkButton1 = (LinkButton)e.Row.FindControl(LinkButton1); LinkButton1.CommandArgument = e.Row.R
35、owIndex.ToString(); LinkButton LinkButton2 = (LinkButton)e.Row.FindControl(LinkButton2); LinkButton2.CommandArgument = e.Row.RowIndex.ToString(); LinkButton LinkButton3 = (LinkButton)e.Row.FindControl(LinkButton3); LinkButton3.CommandArgument = e.Row.RowIndex.ToString(); 曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(3)當(dāng)用戶單擊“新增教工”按
36、鈕時,F(xiàn)ormViewOperation應(yīng)該顯示對應(yīng)的“插入模板”,錄入結(jié)束后,單擊“插入”按鈕,實現(xiàn)把數(shù)據(jù)插入到數(shù)據(jù)庫中。雙擊“新增教工”按鈕,此按鈕的Click事件代碼如下所示:/更改FormView的顯示視圖this.FormViewOperation.ChangeMode(FormViewMode.Insert);(4)由于數(shù)據(jù)庫中對于教工類型和性別的描述都通過編碼表示的,但是顯示給客戶的時候不能直接顯示,需要根據(jù)數(shù)據(jù)庫的編碼轉(zhuǎn)化為方便理解的值,因此需要編寫如下兩個函數(shù),函數(shù)相關(guān)代碼。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(5)Page_Load方法中添加代碼,方便查詢結(jié)束后,當(dāng)頁面再次回送的時候
37、,GridView中還能夠顯示查詢過的結(jié)果。if(SessionuserType.ToString() != 0) /如果不是管理員則返回Response.Write(history.go(-1);); /重定向到前面頁面if (ViewStatesql != null) string sql = ViewStatesql.ToString(); this.SqlDataSourceResult.SelectCommand = sql; this.GridViewResult.DataSourceID = this.SqlDataSourceResult.ID;曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(6)
38、為每行的“詳情”按鈕和“編輯”按鈕編寫事件,當(dāng)用戶單擊“詳情”按鈕時,F(xiàn)ormViewOperation內(nèi)顯示對應(yīng)行的詳情視圖;當(dāng)單擊“編輯”按鈕時,F(xiàn)ormViewOperation內(nèi)顯示對應(yīng)行的編輯視圖。在GridView中單擊按鈕都是觸發(fā)RowCommand事件,在事件內(nèi)部通過命令名稱判斷是哪個按鈕觸發(fā)的,不同的按鈕對應(yīng)不同的代碼。打開GridView控件的屬性窗口,單擊 圖標(biāo),雙擊“RowCommand”,在此方法中添加如下代碼。(7)為了方便查看搜索后查詢出幾條記錄,需要給SqlDataSourceResult控件的Selected事件添加代碼。打開SqlDataSourceResu
39、lt控件的屬性窗口,單擊 圖標(biāo),雙擊“Selected”,在此方法中添加如下代碼:this.LabelSearchResult.Text = e.AffectedRows.ToString();曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院4在瀏覽器中使用本頁在瀏覽器中使用本頁(1)在“設(shè)計視圖”中,右擊選擇“在瀏覽器中查看”,出現(xiàn)如圖6.22所示的界面。圖6.22 初始界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(2)單擊“新增教工”按鈕,出現(xiàn)“新增視圖”,如圖6.23所示,在界面內(nèi)錄入數(shù)據(jù)后,單擊“插入”按鈕,則向數(shù)據(jù)庫表內(nèi)插入了一條記錄,重復(fù)此操作可以向數(shù)據(jù)表內(nèi)插入多條記錄,單擊“搜索”按鈕。圖6.23 新增教工信息界面
40、曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院顯示剛才所插入的記錄,界面如圖6.24所示。圖6.24 增加教工后的界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(3)單擊每條記錄右邊的“詳情”按鈕,下部就會顯示出此記錄的詳細(xì)信息。單擊“編輯”按鈕,則顯示“編輯視圖”,如圖6.25所示,對信息進(jìn)行修改后,單擊“更新”按鈕實現(xiàn)數(shù)據(jù)的更新操作。若單擊“刪除”按鈕,則此條記錄將會從數(shù)據(jù)表內(nèi)刪除,實現(xiàn)刪除操作。圖6.25 編輯教工信息界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(4)當(dāng)表內(nèi)記錄很多的時候需要利用搜索功能顯示出需要查看的記錄,在搜索欄“姓名”處輸入的所要查詢的教工姓名(支持模糊匹配),或在“手機(jī)號碼”處輸入所要查詢的教工手機(jī)(支持模糊匹配
41、),單擊“搜索”按鈕,下方將顯示出所有匹配的記錄,如圖6.26所示。圖6.26 搜索教工界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院1規(guī)劃課程安排維護(hù)的界面規(guī)劃課程安排維護(hù)的界面課程安排維護(hù)頁面的基本布局如圖6.27所示。查詢條件區(qū)域查詢結(jié)果顯示區(qū)域信息詳情/插入和修改區(qū)圖6.27 頁面基本布局曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(2)打開Web.sitemap文件,在標(biāo)記內(nèi)部加入如下的內(nèi)容:。(3)切換到ArrangeCourse.aspx頁面的設(shè)計視圖,在“屬性”窗口中的下拉框中選擇“Document”,設(shè)置StyleSheetTheme屬性為“主題1”。(4)切換到“源”視圖,把光標(biāo)定位到ID為“Content
42、2”的標(biāo)記內(nèi),雙擊“工具欄”中HTML內(nèi)的“DIV”,在光標(biāo)處插入一個層,并設(shè)置其ID為“content”,設(shè)置Style屬性值為“border-style: solid; border-width: 1pt”。(5)按照上面的方法在ID為“content”的層內(nèi)添加一個DIV,其ID屬性為“search”。切換到“設(shè)計”視圖,把光標(biāo)定位到此層內(nèi),單擊“應(yīng)用樣式”窗口中的“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(6)按照如圖6.28所示向ID為“search”的DIV內(nèi)添加控件。圖6.28 搜索欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控
43、件的屬性,設(shè)置如表6.7所示。控 件 類 型相關(guān)屬性和值DropDownListID=“DropDownListClass”ButtonID=“ButtonSearch”,width=“80 px”,Text=“搜索”SqlDataSourceID=“SqlDataSourceClass”表6.7 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(7)通過SqlDataSource任務(wù),打開“配置數(shù)據(jù)源”對話框,在“應(yīng)用程序連接數(shù)據(jù)庫應(yīng)該使用哪個連接”處,選擇“SqlServer2005ConnectionString”,單擊“下一步”按鈕,在彈出的“配置Select語句”對話框中指定來自表“Class
44、”,選中“classID”和“className”兩個列,單擊“下一步”、“完成”按鈕,完成數(shù)據(jù)源的配置。通過DropDownList任務(wù),選擇數(shù)據(jù)源為“SqlDataSourceClass”,“顯示的字段”為“className”,“值字段”為“classID”,單擊“確定”按鈕,完成搜索欄的設(shè)置。(8)切換到“源”視圖中,在ID為“search”的DIV標(biāo)記的下部添加一個DIV。設(shè)置其ID為“result”,在“應(yīng)用樣式”窗口中,單擊“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(9)把光標(biāo)定位到ID為“result”的DIV內(nèi),按照如圖6.29所示向D
45、IV內(nèi)添加控件。圖6.29 搜索結(jié)果欄設(shè)計曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院從左到右分別設(shè)置DIV內(nèi)控件的屬性,設(shè)置如表6.8所示。控 件 類 型相關(guān)屬性和值LabelID=“LabelSearchResult”ButtonID=“ButtonAdd”,Width=“80 px”GridViewID=“GridView,Width=“100%”,AllowPaging=“True”SqlDataSourceID=“SqlDataSourceResult”表6.8 控件屬性設(shè)置曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(10)通過SqlDataSource任務(wù)給SqlDataSourceResult控件設(shè)置數(shù)據(jù)庫連接串
46、為“SqlServer2005ConnectionString”,Select語句為“SELECT Class.className, Course.course-Name, Teacher.teaName, Arrange.team, Arrange.classID, Arrange.courseID, Arrange.teaID FROM Arrange INNER JOIN Class ON Arrange.classID = Class.classID INNER JOIN Course ON Arrange.courseID = Course.courseID INNER JOIN T
47、eacher ON Arrange.teaID = Teacher.teaID WHERE (Arrange.classID = classID)”,classID的參數(shù)源為“Control”,ControlID為“DropDownListClass”。(11)通過GridView任務(wù)為GridViewResult配置數(shù)據(jù)源為“SqlDataSourceResult”控件,通過“編輯列”,打開“字段”窗口,刪除classID、courseID和teaID字段,分別設(shè)置其他的字段的名稱為“班級名稱”、“課程名稱”、“授課老師”和“學(xué)期”,添加2個ButtonField到“選定的字段中”,分別設(shè)置
48、ButtonField的Text屬性為“編輯”和“刪除”,ButtonField的CommandName屬性為“MyModify”和“MyDelete”。打開GridView1的屬性窗口,設(shè)置DataKeyNames為“classID”、“courseID”、“teaID”和“team”。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(12)切換到“源”視圖中,在ID為“Result”的DIV標(biāo)記的下部添加一個ID為“Operation”的DIV。選中此DIV,在“應(yīng)用樣式”窗口中,單擊“innerLayout”樣式規(guī)則,為該層應(yīng)用樣式規(guī)則。(13)切換到設(shè)計視圖,把光標(biāo)定位到Operation層的內(nèi)部,插入一個
49、Panel,ID設(shè)置為“PanelModify”,再在Panel內(nèi)插入一個5行3列的表格,指定寬度為“100%”。選中表格的第一列,通過“應(yīng)用樣式”為其應(yīng)用“ThreeTableOne”樣式;選中表格的第二列,為其應(yīng)用“ThreeTableTwo”樣式;選中表格第三列,為其應(yīng)用“ThreeTableThree”樣式。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(14)按照如圖6.30所示在表格內(nèi)添加控件。圖6.30 控件布局從上到下分別設(shè)置DIV內(nèi)控件的屬性,設(shè)置如表6.9所示。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院3. 編寫本頁所需要的代碼編寫本頁所需要的代碼(1)本頁的.aspx.cs頁面內(nèi)添加如下的命名空間引用。us
50、ing System.Data.SqlClient;using System.Collections.Generic;(2)為了能讓頁面第一次訪問的時候下部編輯區(qū)域不顯示,當(dāng)用戶單擊“排課”按鈕的時候自動顯示出來,需要在Page_load方法內(nèi)添加如下的代碼: if(SessionuserType.ToString() != 0) /如果不是管理員則返回 Response.Write(history.go(-1););/重定向到前面頁面 if (!Page.IsPostBack) this.PanelModify.Visible = false;(3)當(dāng)用戶單擊“排課”按鈕的時候,顯示出Pan
51、alModify內(nèi)部的內(nèi)容,并保存當(dāng)前操作狀態(tài)為“add”狀態(tài)。雙擊“排課”按鈕,在ButtonAdd_Click方法中添加如下代碼:this.PanelModify.Visible = true;ViewStateop = add;曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(4)為了使頁面中的DropDownList控件根據(jù)某個選項的值而使此值對應(yīng)的選項被選中,在commTools類中添加一個方法實現(xiàn)此功能,在需要的地方調(diào)用此類的方法即可。代碼如下所示:public static void setDropDownListByValue(DropDownList list, string value) for
52、 (int i = 0; i list.Items.Count; i+) if (list.Itemsi.Value = value) list.Itemsi.Selected = true; else list.Itemsi.Selected = false; 曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院(5)當(dāng)單擊GridView1內(nèi)部的“編輯”按鈕的時候,能夠獲取相應(yīng)行的信息,并自動顯示出編輯視圖,讓用戶進(jìn)行編輯,需要在GridView1的RowCommand事件內(nèi)添加如下的代碼。(6)當(dāng)單擊“GridView”內(nèi)部的“刪除”按鈕的時候,能夠獲取相應(yīng)行的信息,并從數(shù)據(jù)庫內(nèi)把此記錄刪除,需要在GridVie
53、w1的RowCommand事件內(nèi)添加如下的代碼。(7)在新增或編輯視圖下,單擊“保存”(ButtonSave)按鈕,則會根據(jù)當(dāng)前的操作狀態(tài)執(zhí)行不同的操作,因此需要在ButtonSave的Click事件中添加如下的代碼。(8)“隱藏”按鈕是隱藏實現(xiàn)編輯課程安排功能的控件,即隱藏ID為“PanelModify”的Panel控件。此按鈕的Click事件代碼如下所示。this.PanelModify.Visible = false;曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院4在瀏覽器中使用本頁在瀏覽器中使用本頁(1)在“設(shè)計視圖”中,右擊選擇“在瀏覽器中查看”,出現(xiàn)如圖6.31所示的界面。圖6.31 排課頁面曲阜師范
54、大學(xué)計算機(jī)科學(xué)學(xué)院(2)單擊“排課”按鈕,出現(xiàn)如圖6.32所示的界面,選擇相應(yīng)的信息后,單擊“保存”按鈕即可進(jìn)行排課。(3)單擊GridView內(nèi)部的“編輯”按鈕,也會出現(xiàn)如圖6.32所示的界面,可以更改排課信息。圖6.32 新增界面曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院L1. 數(shù)據(jù)源控件概述數(shù)據(jù)源控件概述數(shù)據(jù)源控件對操作數(shù)據(jù)庫方面的改觀在于: 無需了解ADO.NET的細(xì)節(jié),只要知道Select、Insert、Update、Delete語法即可。 避免了人為撰寫的性能差的ADO.NET語法,提高數(shù)據(jù)訪問的性能。 與數(shù)據(jù)綁定控件結(jié)合,不需要代碼或極少代碼即可使用內(nèi)置的分頁、排序、編輯、更新和刪除等功能。 對
55、不同的數(shù)據(jù)源提供了一致的程序訪問模型,簡化了開發(fā)和學(xué)習(xí)不同技術(shù)的負(fù)擔(dān)。 內(nèi)置緩存機(jī)制,可以加快數(shù)據(jù)訪問。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院數(shù)據(jù)源控件可以連接不同類型的數(shù)據(jù)源,如數(shù)據(jù)庫、XML文檔、其他對象等,但它留給設(shè)計者的接口卻非常相似。設(shè)計人員只需采用相同或相似的方法處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)源屬于什么類型。.NET Framework 包含支持不同數(shù)據(jù)綁定方案的數(shù)據(jù)源控件。表6.10描述了內(nèi)置的數(shù)據(jù)源控件。數(shù)據(jù)源控件說 明SqlDataSource允許使用 Microsoft SQL Server、OLE DB、ODBC 或 Oracle 數(shù)據(jù)庫。與 SQL Server 一起使用時支持高級緩存功
56、能ObjectDataSource允許使用業(yè)務(wù)對象或其他類,以及創(chuàng)建依賴中間層對象管理數(shù)據(jù)的 Web 應(yīng)用程序。支持對其他數(shù)據(jù)源控件不可用的高級排序和分頁方案AccessDataSource允許使用 Microsoft Access 數(shù)據(jù)庫。當(dāng)數(shù)據(jù)作為 DataSet 對象返回時,支持排序、篩選和分頁XmlDataSource允許使用 XML 文件,特別適用于分層的 ASP.NET 服務(wù)器控件,如 TreeView 或 Menu 控件SiteMapDataSource 結(jié)合 ASP.NET 站點導(dǎo)航使用表6.10 .NET Framework包含的數(shù)據(jù)源控件曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院下面分別介
57、紹每種類型的數(shù)據(jù)源控件。1SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件通過 SqlDataSource 控件,可以使用 Web 控件訪問位于某個關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),該數(shù)據(jù)庫包括 Microsoft SQL Server 和 Oracle 數(shù)據(jù)庫,以及 OLE DB 和 ODBC 數(shù)據(jù)源。將 SqlDataSource 控件和數(shù)據(jù)綁定控件結(jié)合使用,使用很少的代碼或不使用代碼就可以在 ASP.NET 網(wǎng)頁中顯示和操作數(shù)據(jù)。2ObjectDataSource 數(shù)據(jù)源控件數(shù)據(jù)源控件ObjectDataSource數(shù)據(jù)源控件用于向數(shù)據(jù)綁定控件表示識別數(shù)據(jù)的中間層對象或數(shù)據(jù)接口對象。結(jié)合使用 Objec
58、tDataSource 控件與數(shù)據(jù)綁定控件,只用少量代碼或不用代碼就可以在網(wǎng)頁上顯示、編輯和排序數(shù)據(jù)。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院3AccessDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件AccessDataSource 是使用Microsoft Access 數(shù)據(jù)庫的數(shù)據(jù)源控件。與SqlDataSource 一樣,AccessDataSource 控件使用 SQL 查詢執(zhí)行數(shù)據(jù)檢索。AccessDataSource 控件的一個獨特之處是不用設(shè)置 ConnectionString 屬性。需要做的就是使用 DataFile 屬性設(shè)置 Access 數(shù)據(jù)庫的mdb 文件位置,AccessDataSour
59、ce 將負(fù)責(zé)維護(hù)數(shù)據(jù)庫的基礎(chǔ)連接。4XmlDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件XmlDataSource 控件使得 XML 數(shù)據(jù)可用于數(shù)據(jù)綁定控件。XmlDataSource 從使用 DataFile 屬性指定的 XML 文件加載 XML 數(shù)據(jù)。另外,還可以從使用 Data 屬性的字符串加載 XML 數(shù)據(jù)。5SiteMapDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件SiteMapDataSource 控件是站點地圖數(shù)據(jù)的數(shù)據(jù)源,站點數(shù)據(jù)則由為站點配置的站點地圖提供程序進(jìn)行存儲。SiteMapDataSource 使那些并非專門作為站點導(dǎo)航控件的 Web 服務(wù)器控件(如 TreeView、Men
60、u 和 DropDownList 控件)能夠綁定到分層的站點地圖數(shù)據(jù)??梢允褂眠@些 Web 服務(wù)器控件將站點地圖顯示為目錄,或者對站點進(jìn)行主動式導(dǎo)航。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院SqlDataSource數(shù)據(jù)源控件主要提供了如下的功能。 只需少量代碼即可實現(xiàn)數(shù)據(jù)庫操作:查詢、插入、更新、刪除。 以DataReader和DataSet方式返回查詢結(jié)果集。 提供緩存功能。 提供沖突檢測功能。SqlDataSource控件的主要屬性見表6.11。曲阜師范大學(xué)計算機(jī)科學(xué)學(xué)院使用SqlDataSource的常見方法: 通過圖形化的方式使用SqlDataSource實現(xiàn)數(shù)據(jù)的查詢功能。 通過圖形化的方式使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024裝修垃圾清運合同范本
- 2024年廢棄物處理爆破合同
- 2024家庭保姆用工合同版
- 2024年商場室內(nèi)LED廣告屏購銷合同
- 2024年工程項目質(zhì)量保證與驗收合同條款
- 二手房產(chǎn)買賣合同協(xié)議模板
- 2024年簡化版購房合同協(xié)議
- 各類維修合同范文集成
- 合同訴訟時效問題
- 2024版店鋪合租合同樣本
- GB∕T 33217-2016 沖壓件毛刺高度
- 貸款客戶信息登記表
- 旅游政策與法規(guī) 教學(xué)大綱
- 垃圾焚燒鍋爐低溫烘爐方案
- 直線和雙曲線交點問題
- DB31∕T 398-2015 建筑垃圾車技術(shù)及運輸管理要求
- 電力物資倉儲管理問題分析及提升措施5200字
- 高中數(shù)學(xué)公式(蘇教版)
- 危險源辨識與風(fēng)險評價全流程講解
- 建筑建筑物改造的防雷接地方案
- 能源與動力工程專業(yè)英語詞匯
評論
0/150
提交評論