freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-音樂網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-06-24 19:54本頁面
  

【正文】 bind是雙向綁定,但需數(shù)據(jù)源可更改才能用。 ,(, fieldname)簡化為Eval(fieldname)。,Eval會(huì)根據(jù)最近的容器對象(例如DataListItem)的DataItem屬性來自動(dòng)地解析字段。由于這個(gè)原因,Eval只能在數(shù)據(jù)綁定控件的模板中使用,而不能用于Page(頁面)層。當(dāng)然, ,你可以在不支持簡化的Eval語法的環(huán)境中使用它。(, fieldname)的綁定語法。%=...%發(fā)生在頁面產(chǎn)生時(shí)而%...%發(fā)生在頁面數(shù)據(jù)綁定時(shí)。數(shù)據(jù)綁定也可以作為控件的主題定義的一部分,這樣我們就可以通過改變主題來隨意地改變模板化控件的布局和外觀。但是Theme(主題)模板中只能使用Eval(或者后面討論的Bind)。綁定到任意的用戶代碼是被禁止的。通過這個(gè)模塊的學(xué)習(xí),發(fā)現(xiàn)了很多以前都沒有在意過的一些方法。4.2 用戶管理模塊設(shè)計(jì) 用戶管理模塊的體系結(jié)構(gòu)設(shè)計(jì)前臺(tái)用戶模塊功能簡介:前臺(tái)用戶模塊是網(wǎng)站用戶使用瀏覽該音樂網(wǎng)站的用戶使用界面。用戶能使用的功能有:用戶注冊登陸;用戶可以填寫自己的資料注冊成為音樂站會(huì)員,通過用戶帳號和密碼登陸,可以分類搜索歌手歌曲專輯信息,網(wǎng)站給出推薦歌手歌曲以及熱門歌曲列表,在試聽過程中可以實(shí)現(xiàn)連播并顯示歌詞,用戶可以試聽下載歌曲等。用戶界面具體的功能模塊如圖421所示:421 前臺(tái)用戶功能模塊圖網(wǎng)站的前臺(tái)用戶頁面通過用戶控件來實(shí)現(xiàn),,它是一個(gè)內(nèi)嵌服務(wù)器控件,相當(dāng)于模板,很大程度地方便了頁面的設(shè)計(jì)。head部分設(shè)計(jì)如下,其中包括該音樂網(wǎng)站的LOGO以及各種界面的鏈接,具體設(shè)計(jì)如圖422所示:422 用戶首頁頭部分設(shè)計(jì)界面圖UCSearch部分設(shè)計(jì)如下,其中包括用戶登錄注冊模塊,以及前臺(tái)搜索功能,具體界面如圖423所示:423用戶登錄搜索設(shè)計(jì)界面圖foot部分設(shè)計(jì)如下,僅僅為了頁面的美觀,沒有具體的功能,其設(shè)計(jì)界面如圖424所示:424用戶首頁頭部分設(shè)計(jì)界面圖(1)前臺(tái)首頁的設(shè)計(jì)用一下語句來引用ascx頁面,具體語句如下:%@ Register TagPrefix=uc1 TagName=foot Src= %%@ Register TagPrefix=uc1 TagName=head Src= %%@RegisterTagPrefix=uc1TagName=UCSearchSrc= %再用以下語句調(diào)用:uc1:head id=Head1 runat=server/uc1:headuc1:ucsearch id=UCSearch1 runat=server/uc1: ucsearch uc1:foot id=Foot1 runat=server/uc1:foot給出最新推薦專輯和推薦歌手以及最熱推薦歌曲,并能鏈接到各項(xiàng)內(nèi)容,也可以直接在首頁進(jìn)行試聽下載。在該網(wǎng)站首頁用戶還可以根據(jù)各自的需要選擇是否進(jìn)入靜態(tài)網(wǎng)頁,方便了用戶的需求。 (2)用戶的登錄登錄的邏輯代碼如下:private void ibtnLogin_Click(object sender, e) { if(((txtUid),(txtPwd))) { int dd=()。 (new HttpCookie (username,(txtUid)))。 [username].Expires=(dd)。 ()。 } }將用戶輸入的字符與數(shù)據(jù)庫中用戶的信息比較,通過驗(yàn)證的用戶進(jìn)入歡迎用戶界面,其中用coolies來保存客戶端數(shù)據(jù),以保證用戶的登錄狀態(tài);(3)用戶注冊對應(yīng)user/注冊功能即把用戶注冊的信息寫入對象,其邏輯代碼如下:protected void Button1_Click(object sender, e) { try { string strUserName=。 string strPassword=。 string strEmail=。 string strTel=。 string strSex=。 string strOICQ=。 string strInfo=。 (strUserName,strPassword,strEmail,strTel,strSex,strOICQ,strInfo)。 (注冊成功,重新登陸!)。 } catch { (注冊失??!)。 } ()。 }在用戶信息的填寫中用了各種驗(yàn)證控件來驗(yàn)證填入字符是否符合要求;(4)用戶的搜索功能用來ListItem控件顯示分類搜索,可以按專輯、歌手、歌曲搜索,搜索功能的邏輯代碼如下:private void ibtnSearch_Click(object sender, e) { if((txtSearch) != ) { string strContent = (txtSearch)。 string strType = 。 (?content=+strContent+amp。type=+strType,800,600)。 } }搜索結(jié)果的實(shí)現(xiàn)——加載頁面時(shí)用一下語句來實(shí)現(xiàn)轉(zhuǎn)到搜索結(jié)果頁面的顯示,用BindGrid()方法來綁定數(shù)據(jù)源字段:if(!IsPostBack) BindGrid()。具體邏輯處理代碼如下:private void BindGrid() { DataView mydv。 string strType = 。 switch(strType) { case 1: { = true。 = true。 strContent = 。 mydv = (strContent)。 if( == 0) = 對不起!沒有您要搜索的記錄!。 else { = 您要搜索的歌曲信息共找到++ 條記錄!。 = mydv。 ()。 } break。 } case 2: { = true。 = true。 strContent = 。 mydv = (strContent)。 if( == 0) = 對不起!沒有您要搜索的記錄!。 else { = 您要搜索的專輯信息共找到++ 條記錄!。 = mydv。 ()。 } break。 } case 3: { = true。 = true。 strContent = 。 mydv = (strContent)。 if( == 0) = 對不起!沒有您要搜索的記錄!。 else { = 您要搜索的歌手信息共找到++ 條記錄!。 =mydv。 ()。 } break。 } default: { = 沒有您要搜索的內(nèi)容!。 break。 } } }(5)統(tǒng)計(jì)點(diǎn)擊率在數(shù)據(jù)庫的表中新建一個(gè)hits字段來自動(dòng)保存點(diǎn)擊率,在存儲(chǔ)過程里用SQL語句和控制語句來描述點(diǎn)擊率的統(tǒng)計(jì)過程,命名為Up_Change_MusicList_hits存儲(chǔ)過程語句具體寫法如下:ALTER PROCEDURE @ID int ASUPDATE MusicList SET hits=hits+1where ID=@ID再將該過程名寫入包中類的方法:public bool ChangeMusicList_hits(string strId) { SqlParameter[] prams = new SqlParameter[] { (@Id, , 4, strId) }。 try { (Up_Change_MusicList_hits, prams)。 return true。 } catch { return false。 } }通過QueryString方法獲取到具體值的時(shí)候自動(dòng)調(diào)用該hits=hits+1方法統(tǒng)計(jì)點(diǎn)擊率,邏輯代碼如下:public partial class Hits : { MusicList MList = new MusicList()。 MusicSpecial MSpecial = new MusicSpecial()。 protected void Page_Load(object sender, e) { if(!Equals(,null)) ()。 if(!Equals(,null)) ()。 } }(6)單曲播放由于對播放器并不是研究的很透徹,該設(shè)計(jì)中的兩個(gè)播放器代碼是從網(wǎng)上參考的,并做了適當(dāng)?shù)男薷模诓シ诺臅r(shí)候仍用頁面?zhèn)髦礠ueryString方法實(shí)現(xiàn)頁面?zhèn)髦?,?shí)現(xiàn)歌曲的播放以及歌詞歌手等信息的顯示:public void Show() { string strFile = 。 (strFile)。 DataView mydv = (strFile)。 Singer = mydv[0][NClassName].ToString()。 SongName = mydv[0][MusicName].ToString()。 MusicPath = \+url+\+mydv[0][wma].ToString()。 SongWord = mydv[0][SongWords].ToString().Replace(\r,br)。 strID=。 }(7)歌曲連播,類似于單曲播放,區(qū)別就在于獲取歌曲地址的時(shí)候是一串字符串,而不是單個(gè)地址。用一下語句還控制它的播放方式和進(jìn)度:!播放器開始OBJECT id=Exobud style=WIDTH: 273px。 HEIGHT: 64px type=application/xoleobject border=0 classid=CLSID:6BF52A52394A11d3B15300C04F79FAA6PARAM NAME=URL VALUE=PARAM NAME=rate VALUE=1PARAM NAME=balance VALUE=0 PARAM NAME=currentPosition VALUE=0 PARAM NAME=defaultFrame VALUE= PARAM NAME=playCount VALUE=1 PARAM NAME=autoStart VALUE=1 PARAM NAME=currentMarker VALUE=0 PARAM NAME=invokeURLs VALUE=1 PARAM NAME=baseURL VALUE= PARAM NAME=volume VALUE=80 PARAM NAME=mute VALUE=0 PARAM NAME=uiMode VALUE=full PARAM NAME=stretchToFit VALUE=1 PARAM NAME=windowlessVideo VALUE=0 PARAM NAME=enabled VALUE=1 PARAM NAME=enableContextMenu VALUE=0 PARAM NAME=fullScreen VALUE=0 PARAM NAME=SAMIStyle VALUE= PARAM NAME=SAMILang VALUE= PARAM NAME=SAMIFilename VALUE= PARAM NAME=captioningID VALUE= PARAM NAME=enableErrorDialogs VALUE=0 PARAM NAME=_cx VALUE=7223 PARAM NAME=_cy VALUE=1693/OBJECT !播放器結(jié)束考慮到不是直接點(diǎn)擊歌曲,而是選擇了之后再播放,會(huì)出現(xiàn)沒有選擇就播放的情況,在這方面做了適當(dāng)?shù)奶幚?,事件邏輯處理代碼如下,打開頁面是時(shí)候選擇歌曲,則顯示“沒有您要聽的歌曲!”:if(!IsPostBack) { try { strPlay()。 play=。 for(int i=0。i。i++) { play+=al[i].ToString()。 } } catch {
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1