国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

親密接觸ASP.Net

2024-07-10 13:11:56
字體:
供稿:網(wǎng)友

最大的網(wǎng)站源碼資源下載站,

    asp+出來都快半年了,我們站點也做了不少的介紹,但是今天飛刀我才終于有了心思來寫一下關(guān)于這個asp+的文章了。呵呵,讓大家久等了。
  
  首先我得申明,本教程適用于有一定網(wǎng)絡(luò)編程經(jīng)驗的人,比如asp,php,cgi,jsp開發(fā)者,如果你對網(wǎng)絡(luò)編程一點也不了解,那么您還是先去學(xué)學(xué)其它的語言,不然以下的文章您會有很多看不懂的地方。呵呵。
  
  我們開始吧。
  
  asp+的運行環(huán)境
  
  我們要學(xué)習(xí)asp+,就先得搞一個調(diào)試環(huán)境出來。讓你的"愛雞"支持asp+,那么您需要以下的條件:
  
  windows 2000 professional, windows 2000 server , windows 2000 advanced server
  
  ngws
  
  ie 5.5
  
  以上是支持asp+的需要,大家看到目前只有windows 2000才有安裝ngws的可能,nt,windows 98,windows me 暫時還沒有辦法支持asp+,不會老蓋答應(yīng)我們在以后的版本中會在其它的平臺上支持asp+的,大家慢慢等吧。而且還不是所有的window 2000都可以,windows 2000的版本號要是rc 3618以上的才行(這是本人寫這篇文章時的情況,現(xiàn)在連win98都可以了)。飛刀我以前就是windows 2000的版本太低,不得不放棄正版,買了d版(全是asp+惹的禍)。
  
  ngws是個大塊頭,有111m之巨,飛刀兄弟我的小貓跑了5個小時才把它搞定,它的下載地址是http://download.microsoft.com/download/visualstudionet/install/2204/nt5/en-us/setup.exe 幸得m$有錢,下載站點的帶寬還大,下載速度還可以咯。大家慢慢來吧。
  
  ie 5.5 是上面最好搞定的東東了。這個東西現(xiàn)在已經(jīng)是泛濫了:),d版的不少,呵呵,不能稱d版,它本身就是免費的:)
  
  asp+與asp的比較
  
  說起asp+的好處,那就很多了。我們這里舉幾個最明顯的。
  
  速度,asp+是編譯后執(zhí)行的,也就是說當(dāng)aspx文件第一次被請求時被編譯,以后的請求就不需要重新編譯了。而asp是解釋性腳本語言,每次都需要重新編譯,這種原因,其速度就無法和asp+來比了。不過asp+的編譯速度也夠慢的,在本地機(jī)上調(diào)試,第一次執(zhí)行的速度是很慢的。不過以后就很快了,第一次執(zhí)行的任務(wù)就交給管理員去做吧。我們就去享受以后的高速度吧:)
  
  功能,asp+的功能是無比強(qiáng)大的,幾乎能做我們在網(wǎng)絡(luò)能想到的事情,呵呵,舉個簡單的例子,那就是文件的上傳,在asp的時代,這個問題只能通過組件才行,但是在asp+中只需要以下的代碼就可以了。下面是一個例子:
  
  < html>
  < head>
  
  < script language="c#" runat="server">
  
  void button1_click(object source, eventargs e) {
  
  if (text1.value == "") {
  span1.innerhtml = "error: you must enter a file name";
  return;
  }
  
  if (file1.postedfile != null) {
  try {
  file1.postedfile.saveas("c://temp//"+text1.value);
  span1.innerhtml = "file uploaded successfully to c://temp//"+text1.value+" on the web server";
  }
  catch (exception exc) {
  span1.innerhtml = "error saving file c://temp//"+text1.value+"
  "+ exc.tostring();
  }
  }
  }
  
  
  
  < /head>
  < body>
  
  
  
  htmlinputfile sample
  
  
  < form enctype="multipart/form-data" runat="server">
  
  select file to upload:
  
  
  
  save as filename (no path): < input id="text1" type="text" runat="server">
  
  
  
  
  < span id=span1 runat="server" />
  
  
  
  
  < input type=button id="button1" value="upload" onserverclick="button1_click" runat="server">
  
  < /form>
  
  < /body>
  < /html>
  
  相信大家都能看懂上面的程序,不是太難。看看用asp+上傳文件就是這么簡單,根本就不需要什么組件了,呵呵,只可憐飛刀我寫了半天的"aspcnup上傳組件",一片心血就被m$給搞完了。我們的組件也要下崗了,唉,可悲啊。(飛刀悲情地唱起"風(fēng)蕭蕭兮,易水寒,壯士一去不復(fù)返......")
  
  asp+能做的事遠(yuǎn)不止如此,這里只是舉個小例子,它的更多功能我們以后再去介紹,呵呵。
  
  asp+還有一大優(yōu)點就是結(jié)構(gòu)化編程,他的程序語言可以自已任意加,目前支持c#,vb,javascript,呵呵,大家是不是對不支持vbscript感到失望 ?!:)這是大勢所趨,大家也不必失望啦,我以后的文章的例程都會用c#去寫,呵呵,如果你鐘情于vb,你也可以看看本站一篇關(guān)于vb與c#語法比較的文章,很容易上手的。對于c#,大家可能比較陌生,不過我們看看上面的程序,發(fā)現(xiàn)他還是有很多地方是我們?nèi)菀咨鲜值摹N覀€人認(rèn)為它是c++與vb與java的結(jié)合體,也可能是m$宣戰(zhàn)java的第一步,大家用多了就會覺得他好處多:)
  
  寫asp+程序,你會覺得是在寫vb或者是vc,很多的思想全都來自于vb,vc,可能是m$.net的原因吧。所以我們寫程序的思維需要改變,要讓你自已感覺這是在寫軟件,不是在寫傳統(tǒng)的asp程序。
  
  至于asp+還有的一些功能,我們站點以前的文章也介紹了,呵呵,大家查查,我們以后也會通過程序去了解,只可惜,我們服務(wù)商的服務(wù)器不能使用asp+,否則我們會更多了解的asp+的特性。
  
  另外一個大家關(guān)心的問題就是,裝有ngws的windows 2000是否還支持asp,擔(dān)心我們有了aspx,就沒有了asp,以前的程序就全玩完了。這個問題大家根本不用擔(dān)心,ngws設(shè)計時m$就考慮過,ngws同樣可以解析asp,文件的擴(kuò)展名是.asp,那就使用asp的方法解析,如果是.aspx就使用asp+來解析,所以您以前的asp是不會報銷的。哈哈,大家可以放心啦。飛刀的機(jī)器上就是這樣的咯。aspx,asp都可以用:)
  
  這第一節(jié)就到這兒了,下一節(jié),我們介紹一下,asp+的語法:),大家多多捧場。

  上一節(jié) ,我們簡單介紹了asp+的配制環(huán)境,我們這一節(jié)來談?wù)刟sp+的語法.其實當(dāng)你裝好ngws后,他所帶的文檔是最好的學(xué)習(xí)asp+的教程,要你e文足夠好,以及很好的耐性,學(xué)習(xí)asp+不是難事啦.我們這些家伙也是從這里學(xué)了很多的,這篇關(guān)于asp+語法的文章,大多數(shù)也來自于m$的原文,最可惜的就是我們的服務(wù)器不能裝上ngws,有些例子,大家不能看到執(zhí)行結(jié)果,不太好。不過有些地方,我會把執(zhí)行結(jié)果顯示出來的。我們開始這一節(jié)吧:)
  
  一個asp+頁面的后綴名是".aspx".它能夠包含八種不同的語法標(biāo)置元素.我們將在這篇文章中介紹這幾種不同的語法,并且舉出一個例子來顯示它的用法。
  
  < % %> 與 < %= %>
  
  用過asp嗎,用過,那么大家就不會對這個標(biāo)簽?zāi)吧恕:呛牵旅媸且粋€簡單的例子。他執(zhí)行后的結(jié)果我想我不寫不出來,大家也都知道啦。這個就不多談了,呵呵.
  
  < % for (int i=0; i<8; i++)
  
   {
  
  %>
  
   hello world!
  
  < % } %>
  
  
  上面的例子中< % %>之間的程序?qū)粓?zhí)行,并顯示出的結(jié)果,< %="hello world" %>就等于< % response.write ("hello world") %>
  
  注意:在c#中,是以分號(;)做為分隔符,但是我們要注意一些事情。
  
   
  
  c# code
  < % response.write("hello world"); %> 這里的分號是必須的
  < %="hello world"; %> 這樣寫會有一些小問題就是,顯示的結(jié)果是 "response.write("hello world";);"
   正確
  
  
  
  聲明代碼的語法: < % ... number = subtract(number, 1); ... %>
  
  重要問題:asp+不像asp,在asp中所能的函數(shù)得在區(qū)域中聲明,但是在asp+中所有函數(shù)和變量都必須在區(qū)域中聲明。否則,aspx編譯時會出現(xiàn)錯誤.
  
  asp+ 服務(wù)器端控件語法
  
  服務(wù)器上的控件使用開發(fā)者能夠動態(tài)產(chǎn)生html頁面,并發(fā)送給客戶(如netscape和ie所產(chǎn)生的javascript是不同的。還有普通瀏覽器和wap瀏覽所收到的頁面也是不同的).他們對象的聲明也是運用了標(biāo)簽。但是他們和其它的標(biāo)簽是不同的。因為他們包含有一個"runat=server"屬性。(呵呵,這個屬性我們在asp中也用過,不過功能就...)。下面的例子演示了控件的使用方法。
  
  < html>
  
  < script language="c#" runat=server>
  
  void page_load(object sender, eventargs e) {
  message.text = "welcome to asp+";
  }
  
  < /script>
  
  < body>
  
  < asp:label id="message" font-size=24 runat=server/>
  
  < /body>
  
  < /html>
  
  
  上面的源代碼中我們加入id為 "message":
  
  
  
  < asp:label id="message" font-size=24 runat="server"/>
  
  
  
  看了上面的代碼,是不是發(fā)現(xiàn)我們在寫vb程序,呵呵,先搭好骨架,然后再一個個的去編寫他們事件處理。這就是m$給我們的新概念.
  
  
  asp+ html 服務(wù)器控件語法
  
  html服務(wù)器控件,使開發(fā)者程序化的操作html元素。一個html服務(wù)器控件只是比普通html元素多了一個"runat=server"屬性。下面的例子具體演示了html服務(wù)控件的用法。
  
  
  
  < script language="c#" runat=server>
  
   void page_load(object sender, eventargs e) {
  
   message.innerhtml = "welcome to asp+";
  
   }
  
  < /script>
  
  ...
  
  < span id="message" runat=server/>
  
  
  他執(zhí)行的結(jié)果和第一個程序的結(jié)果是一樣的
  
  
  數(shù)據(jù)捆綁(databinding)語法 < %# %>
  
  數(shù)據(jù)捆綁技術(shù)使得asp+開發(fā)者能夠很形像地把控件的屬性與數(shù)據(jù)容器的值聯(lián)系起來.在 < %#%>這個區(qū)域內(nèi)的代碼只有在"databind"方法調(diào)用后才會被執(zhí)行。下面的例子就演示了它的用法。
  
  
  
  
  
   here is a value:
  
  
  
  
  
  
  通過這種方法使得名為"mylist"的控件程序化,這時就該調(diào)用databind()方法了。
  void page_load(object sender, eventargs e)
  { arraylist items = new arraylist();
  items.add("one");
  items.add("two");
  items.add("three");
  mylist.datasource = items;
  mylist.databind();
  }
  object標(biāo)簽語法: < object runat="server" />
  
  object標(biāo)簽語法使得開發(fā)者能夠使用就基本的標(biāo)簽就能聲明和示例一個對象。如下:
  
  < object id="items" class="system.collections.arraylist" runat="server"/>
  
  
  這個對象會在運行時自動建立,而且名字為items
  void page_load(object sender, eventargs e) {
  
   items.add("one");
  
   items.add("two");
  
   items.add("three");
  
   ...
  
  }
  
  
  
  注釋語法:
  
  注釋能使開發(fā)者阻止代碼(包括控件)的執(zhí)行或引用。下面的例子演示了這個語法的應(yīng)用.
  
  < %--
  
  
  
   < asp:calendar id="mycal" runat=server/>
  
   < % for (int i=0; i<45; i++) { %>
  
   hello world
  
   < % } %>
  
  --%>
  
  
  ssi 語法: <-- #include file="locaton.inc" -->
  
  寫過最基本的html的兄弟對他不會陌生,所以也不想多講啦:)
  
  < !-- #include file="header.inc" -->
  
  ...
  
  < !-- #include file="footer.inc" -->
  
  
  下面的一節(jié),我們將來具體看看html控件和用戶控件

    不好意思,很久沒有寫文章,主要原因是前段時間考試,忙得飛刀我昏頭轉(zhuǎn)向,現(xiàn)在時間終于有多余了,所以不得不又提起筆來了(注:沒有筆,回到家,連電腦也沒有,只有在網(wǎng)吧混日子)。但是由于回到家中,沒有電腦,所以我的文章也只能是斷續(xù)地寫出來,大家請見諒。
  最近有朋友問我,哪里可以學(xué)好asp+,我早就說過ngws中帶的文檔是最好的學(xué)習(xí)手冊,不過由于ngws的要求太高,還有它的大小(110m)的問題,有一部分兄弟,不能裝上它,我給你們一個站點http://www.aspnextgen.com/quickstart/aspplus/ ,上面的文檔就是ngws直接帶的,而且這個站點全是由asp+構(gòu)建的,大家可以直接看到aspx的執(zhí)行情況,我現(xiàn)在對我們的站點唯一不滿的地方就是不能執(zhí)行aspx,不能給大家看到例程的執(zhí)行結(jié)果。
  好了不說多話了,我們這一節(jié)要來看看如何使用asp+中的控件吧。
  asp+中的控件分為兩種,一種是html控件(htmlcontrols ),一種是web控件(webcontrols) ,我們這一節(jié)先來講講比較簡單的html控件。另一種控件留到下一節(jié)再去講:)
  
  html控件,如果只是看外觀,發(fā)現(xiàn)和普通的html標(biāo)簽沒有什么兩樣,不過就是
  
  <select><a>
  這些東東,唯一的區(qū)別就是在標(biāo)簽的后面多了個runat="server",其實我們對這個runat="server"我們也不陌生,呵呵,在asp的global.asa文件我們經(jīng)常看到。但是如果在asp+中多了這個,那么程序代碼的性質(zhì)也就變了。如:
  
  
  <select id="aspcn">
  
  <option>asp</option>
  
  <option>jsp</option>
  
  <option>php</option>
  
  </select>
  
  
  
  上面的select不過是一個普通的html標(biāo)簽而已,但是如果在select后加上runat="server",那么一切都變了。
  
  
  <select id="aspcn" runat="server">
  
  <option>asp</option>
  
  <option>jsp</option>
  
  <option>php</option>
  
  </select>
  
  
  那么這個就是一個asp+程序,我們就可以寫aspx程序了。 如:
  
  
  <% @ import namespace="system.data" %>
  
  <script language="c#" runat="server">
  
   void aspcn_onclick(object src,eventargs e)
  
   {
  
   string selectvalue;
  
  
  
   if(page.ispostback)
  
   {
  
   selectvalue=aspcn.selecteditem.value;
  
   selectitem.text=selectvalue;
  
   }
  
  
  
   }
  
  
  
  </script>
  
  <html>
  
   <head><title>select演示程序</title></head>
  
  <body>
  
  請選擇:
  
  <form runat="server">
  
  <select id="aspcn" runat="server" >
  
   <option>asp</option>
  
   <option>jsp</option>
  
   <option>php</option>
  
   <option>asp+</option>
  
   <option>com</option>
  
  </select>
  
  <asp: bottun text="提交" onclick="aspcn_onclick">
  
  <br>
  
  您的選取的select列表是:<font color=red><asp: label id="selectitem" text="暫無"> </font>
  
  </form>
  
  
  
  上面是一個很簡單的aspx例子,主要目的是演示select html控件的用法. 上面的例子中,首先顯示如下:
  請選擇: asp jsp php asp+ com
  您的選取的select列表是:暫無
  
  當(dāng)你點擊"提交"鍵后,你就會后到:(假設(shè)我們 選取的是php)
  請選擇: asp jsp php asp+ com
  您的選取的select列表是:php
  
  從上面的例子中我們可以看到,我們主要操作的是aspcn_onclick子程序,而這個程序是由名為sub的控件激發(fā)的。(這里的button和label均屬于web控件,我們下一節(jié)再講),我們在aspcn_onclick中對于名為aspcn的select控件的操作,我們也很熟悉,呵呵,是不是很像 客戶端的javascript?!相信用過javascript的兄弟,一定能看懂程序,呵呵,我們寫服務(wù)器程序是不是像是在寫客戶端的程序,m$推出.net也就是為了達(dá)到這個效果,不過這個對初學(xué)者來說是個不太好的事情,因為初學(xué)者本來就搞不清什么是客戶端什么是服務(wù)器,現(xiàn)在又把他們寫在一起,相信很多人要搞糊啦,所以我一開始就建議初學(xué)者還是先看看一些基礎(chǔ)的東東為好。
  我們使用aspcn.selecteditem.value來獲取aspcn列表的值,然后通過selectitem.text=selectvalue再把這個值傳給名為selectitem的控件。就成為了我們看到的情形。程序是很簡單的,我們在這里只是讓大家有一個初步的了解。
  幾乎每一種html標(biāo)簽加上個runat="server"就可以成為html控件了。具體的有:
  
  htmlanchor htmlbutton htmlform htmlgenericcontrol
  
  htmlimage htmlinputbutton (button) htmlinputbutton (reset) htmlinputbutton (submit)
  
  htmlinputcheckbox htmlinputfile htmlinputhidden htmlinputimage
  
  htmlinputradiobutton htmlinputtext (password) htmlinputtext (text) htmlselect
  
  htmltable htmltablecell htmltablerow htmltextarea
  
  
  我一時也無法把他們的用法一個個的說明,請大家到我上面說的那個站點自已去看,我們以后寫程序就要熟練使用html控件和 web控件了。只要e文好,相信沒有什么問題,呵呵,不要指望飛刀我翻譯啊,我頭都大了,大家饒我一命。
  另外我們要提醒大家的就是,因為我們寫asp+一般都用c#,所以在命名控件時注意大小寫,不然編譯時會出錯的。再有就是如果程序編譯時請仔細(xì)看好出錯信息,不要一出錯就馬上想到去問,自已動腦筋去想想,收獲會更大。呵呵,這一章就到這里了,下一節(jié)就要講web控件。
  (先說一下我的安排了咯,呵呵,講完web控件后,再講bind,然后就是數(shù)據(jù)庫,接著就是application和session,再后來的以后再安排)
  88,祝大家過個好春節(jié):)

    整天的泡在考研的資料里面,閑暇時就和朋友們大談特談ngws,一天終于被lazy兄一棍子打醒,"都什么年代了,還在談ngws",慌忙中趕快重新下載我心目中的"ngws",裝上后,發(fā)現(xiàn)今非昔比,這個ngws已經(jīng)改名叫micosoft .net ,asp+也堂而皇之的改名為asp.net.而且現(xiàn)在不僅window 2000能夠安裝調(diào)試asp.net了,而且連最爛的"瘟酒吧"也可以了,于是發(fā)現(xiàn)自已離時代越來越遠(yuǎn)了.....(臺下人:發(fā)表什么感嘆,還不快入正題)(同時,一不明飛行物突然向飛刀砸來,飛刀立刻倒在血泊中.....)
  
  web控件
  按照計劃我們這一節(jié)要談web控件,我想了半天也不知道如何定義這個web控件,它比html控件難于理解,畢竟html太像原來我們熟悉的東東了。而web控件確與我們平常見到的有很大的出入,不知道大家還記不記得我說過的一句話,那就是asp.net的程序就像是寫vbvc中的窗口,先再這些窗口中加入我們的需要的控件,然后再對這些控件進(jìn)行操作。如果你學(xué)過一點點vbvc的編程,那么理解這個就不難了,asp.net中的web控件就像是vbvc中的控件一樣。我們先在頁面中擺好這些控件,然后再通過page_load以及其它一些自定義事件來對他們進(jìn)行控制。我們還是通過看一個實例來了解一下吧。我們先舉簡單的label控件吧.
  
  源代碼如下:
  
  
  
  
  
  
  
  
  
  測試label控件:
  
  這是紅色粗體的文字
  
  
  
  
  
  
  
  
  這段程序執(zhí)行后的結(jié)果是
  
  測試label控件:
  這是紅色粗體的文字
  這是藍(lán)色斜體的文字
  這是黑體字,并且?guī)聞澗€
  
  看看源代碼,再看看程序執(zhí)行的結(jié)果是不是發(fā)現(xiàn)label控件和vb中的label控件很相近:)
  
  (注:你在你的機(jī)器上看到的中文可能是亂碼,那么請您打開x:/winnt/microsoft/framework/v1.0.224目錄,找到其中的config.web文件,打開它,找到下面的文字:
  
  requestencoding="iso-8859-1"
  responseencoding="iso-8859-1"
  />
  
  把其中的iso-8859-1改為gb2312,ok,再執(zhí)行一下程序,中文是不是出來了:)
  
  這里我們用了三種方法來操作label控件,第一種是類似html的閉合標(biāo)簽,將要寫的字寫在之間;第二種是用到了label控件text屬性;第三種,是通過執(zhí)行page_load事件而把文字寫進(jìn)label控件的。這三種方法都很有用,看你自已的喜歡了,第三種是最常用的啦,以后我們會經(jīng)常用到.label控件不光有text屬性來控制它的文字,而且還有font-size等屬性來控制字體大小,顏色等屬性,這里的例子我都用到了,大家好好看看,相信沒有什么問題
  
  我們見過了label控件的操作,那么我們對web控件有了一個感性的認(rèn)識,在asp.net中,一共有28個web控件,它們是:
  
  adrotator button calendar checkbox
  checkboxlist comparevalidator customvalidator datagrid
  datalist dropdownlist hyperlink image
  imagebutton label linkbutton listbox
  panel radiobutton radiobuttonlist rangevalidator
  regularexpressionvalidator repeater requiredfieldvalidator table
  tablecell tablerow textbox validationsummary
  
  大家可以到我上一節(jié)講的那個站點去具體看一下他們各自的用法,這里我本來想主要講一下datagrid,datalit,listbox但是他們其中都需要用到binding知識(這個我們在下一節(jié)講),所以我們主要來看看dropdownlist的用法(因為我們上一節(jié)是用的select來講解html控件的)
  
  先看一個例子:
  
  
  
  
  
  
  
  
  
  
  
  請選擇aspcn.com工作室程員:
  
  
  飛刀
  大風(fēng)
  zsir
  布丁
  亞豪
  
  
  
  
  
  
  
  
  
  
  
  它執(zhí)行顯示為:
  
   請選擇aspcn.com工作室程員:
   飛刀 大風(fēng) zsir 布丁 亞豪
  
  
  
  如果我選中了其中的飛刀,然后再按下"提交"鍵,那么顯示就是:
  
   請選擇aspcn.com工作室程員:
   飛刀 大風(fēng) zsir 布丁 亞豪
  
  您選擇的是本工作室的飛刀成員
  
  
  dropdownlist控件,其實和select差不多,功能也就多那么一點點,但是這個多一點點的功能就是很有用的,這就是我們下一節(jié)要學(xué)習(xí)的bind,呵呵,是不是想學(xué)了:)不急,我們先分析一下這里的程序。
  
  我們用dropdownlist控件建立起一個list列表,然后我們選擇其中的一個選項,最后按提交鍵提交。這里我們可以看到處理程序的是sub_click這個事件,這里由名為sub的button控件激發(fā),所用的事件是onclick,這里和html控件所使用的onserverclick事件是不同的,大家要分清楚。其它的好像沒有什么可以說了。呵呵
  
  我們下一節(jié)要講bind,這個是很重要的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉隆县| 富裕县| 凤阳县| 烟台市| 栾川县| 万安县| 霍邱县| 韩城市| 平乡县| 正蓝旗| 红河县| 综艺| 连城县| 铜鼓县| 独山县| 平顺县| 青田县| 宝坻区| 冷水江市| 建始县| 东乌珠穆沁旗| 浠水县| 交城县| 永年县| 会同县| 博罗县| 屯门区| 盘锦市| 河北省| 贵溪市| 红原县| 陆河县| 威信县| 青铜峡市| 柘荣县| 乌鲁木齐县| 江城| 鲁山县| 永福县| 保山市| 个旧市|