乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      asp.net 同一個(gè)頁(yè)面中如何保持變量的值在多個(gè)事件中變換???

       行走在理想邊緣 2019-08-15
      牛腩新聞發(fā)布系統(tǒng)進(jìn)行到尾聲,因?yàn)殚_(kāi)始就和視頻講師講解牛腩新聞系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu),編程命名等一些細(xì)節(jié)不一樣,所以越是到后期,越有點(diǎn)吃力,跟著視頻做系統(tǒng)的時(shí)候,出現(xiàn)了好多問(wèn)題,不是文件找不到,就是變量,對(duì)象使用不正確,都得一一查來(lái),在跟自己的命名比對(duì),明顯慢了好多,但是還是有利有弊的,在發(fā)現(xiàn)問(wèn)題,解決問(wèn)題的同時(shí),也知道了很多,所以學(xué)習(xí)是成正比的。

      先看看我的問(wèn)題吧。進(jìn)行“修改牛腩系統(tǒng)新聞”模塊時(shí),新聞這個(gè)表中的字段(新聞?lì)悇e,新聞標(biāo)號(hào),新聞標(biāo)題,新聞內(nèi)容)除了新聞標(biāo)號(hào)不可以修改,其他都是可以更改的。修改新聞界面如下:


      頁(yè)面上缺少新聞標(biāo)號(hào),我們要進(jìn)行新聞修改是,要根據(jù)新聞標(biāo)號(hào)進(jìn)行修改,怎么辦?

      我們可以從新聞列表頁(yè)跳轉(zhuǎn)過(guò)來(lái)的時(shí)候,就把“新聞標(biāo)號(hào)”賦值給一個(gè)全局變量。

      思路:在form 中定義了一個(gè)全局變量,

      //全局變量,新聞標(biāo)號(hào)
             //string newsid;
      在頁(yè)面load中給變量賦值:    
       protected void Page_Load(object sender, EventArgs e)
              {
      			//給變量賦值
                          newsid = dtNews.Rows[0][0].ToString(); 
                          
                }
      

      在“修改新聞”事件中調(diào)用:

      protected void btnupdate_Click(object sender, EventArgs e)
             {
      		updateflag = new NewsManage().Update(newsid);
      	}
      

      結(jié)果發(fā)現(xiàn):加載的時(shí)候newid的值確實(shí)被賦值了,但是但我們?cè)俅斡|發(fā)“修改新聞”按鈕時(shí),頁(yè)面刷新,newsid的值消失了,所以,我們單純的使用全局變量達(dá)不到我們的目的。

      那我們只好換方法了。我們可以通過(guò)以下四種來(lái)實(shí)現(xiàn)。

      第一種:將全局變量換成“Static”。

      //靜態(tài)變量,新聞標(biāo)號(hào)
             //static string newsid;
      

      接下來(lái)的復(fù)制,調(diào)用,同上。

      第二種:使用viewstatic。

      首先:什么是viewstatic?

      ViewState是ASP.NET中用來(lái)保存WEB控件回傳時(shí)狀態(tài)值一種機(jī)制。在WEB窗體(FORM)的設(shè)置為runat="server",這個(gè)窗體(FORM)會(huì)被附加一個(gè)隱藏的屬性_VIEWSTATE。_VIEWSTATE中存放了所有控件在ViewState中的狀態(tài)值。

      ViewState是類(lèi)Control中的一個(gè)域,其他所有控件通過(guò)繼承Control來(lái)獲得了ViewState功能。它的類(lèi)型是system.Web.UI.StateBag,一個(gè)名稱(chēng)/值的對(duì)象集合。當(dāng)請(qǐng)求某個(gè)頁(yè)面時(shí),ASP.NET把所有控件的狀態(tài)序列化成一個(gè)字符串,然后做為窗體的隱藏屬性送到客戶(hù)端。當(dāng)客戶(hù)端把頁(yè)面回傳時(shí),ASP.NET分析回傳的窗體屬性,并賦給控件對(duì)應(yīng)的值。

      使用:1、不需要在form 中定義變量:在頁(yè)面load中給變量賦值:      

       protected void Page_Load(object sender, EventArgs e)
              {
      	//第二種:頁(yè)面級(jí)的變量,只要頁(yè)面不消失,就存在
                          //ViewState["newsid"] = dtNews.Rows[0][0].ToString(); 	
                          
                }
      

      2、調(diào)用:
      protected void btnupdate_Click(object sender, EventArgs e)
             {
      		Newsid = ViewState["newsid"].ToString();	
      		
      		updateflag = new NewsManage().Update(Newsid);
      }
      

      第三種:使用session。

      與第二種viewstate的使用是一樣的。只是把viewstate換成session即可。

      第四種:使用asp.net 隱藏屬性:hiddenfield。

      1、要在前臺(tái)頁(yè)面中定義hiddenfield屬性。

      <!--隱藏屬性-->
              <asp:HiddenField ID="newsid" Value ="" runat="server" />
      

      2、在后臺(tái)頁(yè)面中復(fù)制:

       protected void Page_Load(object sender, EventArgs e)
              {
      	//第四種:使用屬性:在前臺(tái)頁(yè)面中定義
               newsid.Value = dtNews.Rows[0][0].ToString();
                          
               }
      

      3、調(diào)用:

      protected void btnupdate_Click(object sender, EventArgs e)
             {
      		Newsid = newsid.Value ;	
      		
      		updateflag = new NewsManage().Update(Newsid);
      }
      

      以上方法都可以使用成功,第四種的隱藏屬性不經(jīng)常使用。

      Viewstate和Session的使用區(qū)別:簡(jiǎn)單點(diǎn)說(shuō),session值是保存在服務(wù)器內(nèi)存上,那么,可以肯定,大量的使用session將導(dǎo)致服務(wù)器負(fù)擔(dān)加重.而viewstate由于只是將數(shù)據(jù)存入到頁(yè)面隱藏控件里,不再占用服務(wù)器資源,因此,我們可以將一些需要服務(wù)器"記住"的變量和對(duì)象保存到viewstate里面.而sesson則只應(yīng)該應(yīng)用在需要跨頁(yè)面且與每個(gè)訪問(wèn)用戶(hù)相關(guān)的變量和對(duì)象存儲(chǔ)上.另外,session在默認(rèn)情況下20分鐘就過(guò)期,而viewstate則永遠(yuǎn)不會(huì)過(guò)期.

      但viewstate并不是能存儲(chǔ)所有的.net類(lèi)型數(shù)據(jù),它僅僅支持String、Integer、Boolean、Array、ArrayList、Hashtable以及自定義的一些類(lèi)型.

      發(fā)現(xiàn)只要下決心,解決一個(gè)問(wèn)題,總會(huì)有藏不住的方法。

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多