)asp.net一些總結

來源:互聯網
上載者:User

1.字串拼接:

string msg = "Hello, " + thisUser.Name + ".Today is " + DateTime.Now.ToString( ));

更有效率的寫法:

string msg = string.Format ( "Hello, {0}. Today is {1}", thisUser.Name, DateTime.Now.ToString( ));

2.大量資料拼接則使用StringBuilder。

3.字串的比較:

if ( str != "" )與if ( str == "" )

更有效率的寫法:

if ( str.Length != 0 )與if ( str.Length ==0 )

有效率且可讀性更好的寫法:

if ( str != string.Empty )與if( str.Equals(string.Empty)

4.盡量避免box與unbox,因此使用集合時如果頻繁更新集合內容,則推薦使用泛型。

 一、消除數組中的重複項。

    近期在做項目的時候,要求消除數組中的重複項,如過在沒有LINQ前,這好像要寫個函數還實現這個功能,但有了linq後,這個功能那是相當的簡單的啊,如下面的代碼:

 

Code
string[] stringArray = { "a", "b", "c", "a", "b", "e" };

            Console.WriteLine(stringArray.Distinct().ToArray().Length);
            foreach (string s in stringArray.Distinct().ToArray())
                Console.Write(s);
            Console.ReadLine();

 

程式執行的結果:4,abce。這樣,消除數組中的重複項只需要Array.Distinct().ToArray()就可以實現。Linq這是個好東西啊。

 

    二、Textbox的readonly屬性和disabled屬性

    在項目中,需要經常用到這兩個屬性,區別如下:

  1. readonly屬性

 代碼:<input type="text" value="fisker" onclick="alert(this.value);" readonly />

  輸入框唯讀,不能編輯,同樣表單可以獲得值。

  3,disabled

 代碼:<input type="text" value="fisker" onclick="alert(this.value);" disabled />

  輸入框灰色,不能編輯,以用JS改變或獲得其值,但提交時並不提交該值。

 

    三、跨頁面的傳送中的一個問題

    跨頁面的傳送就是提交表單(例如Page1.aspx),並把這個表單和所有控制項的值都傳送給另一個頁面(Page2.aspx)。實現這個功能就是在控制項Button上添加屬性PostbackUrl即可。

    但是這裡需要在點擊Button時,首先執行一段javascript代碼後,在實現跨頁面的傳送,直接用Button完不成這個功能,這時候就需要另一個控制項LinkButton了,然後再將LinkButton偽裝成Button。哈哈。如下面的代碼:

 

Code
 <asp:LinkButton ID="LinkButtonSentEmail" runat="server" OnClientClick="getEmailString();return true;"
                PostBackUrl="~/EmailEdit.aspx" Width="70px">發送郵件</asp:LinkButton>

 

 

 執行的javaxcript為:

 

Code
 <script type="text/javascript" language="javascript">
        function getEmailString()
        {
            var gHiddenFieldEmailAddress;
            gHiddenFieldEmailAddress=$get("HiddenFieldEmailAddress");
            gHiddenFieldEmailAddress.value="";
            
            var elements=document.getElementsByTagName("input");
            for (var i = 0; i < elements.length; i++) {
               var e = elements[i];
               if (e.type == "checkbox" &&  e.checked &&e.id!="checkAll") 
                  if(e.value.trim()!="")
                    gHiddenFieldEmailAddress.value+=e.value+",";
            }
        }
    </script>

 

    但是,還有一個問題是,如何把LinkButton偽裝成Button的形狀,下面的CSS代碼就能解決這個問題:

 

Code
<style type="text/css">
        #LinkButtonSentEmail
        {
            padding: 3px;
            border: 2px outset;
            cursor: pointer;
            background-color: #FFFFFF;
            text-align: center;
            height: 14px;
            text-decoration: none;
            color: #000000;
            clear: both;
        }
    </style>

 

    這樣看起來就好像是Button出發的這個跨頁面的傳送了。 

    以上三個問題是我在做項目的時候遇到的小問題,把它們寫下來,感覺不錯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.