一、消除數組中的重複項。
近期在做項目的時候,要求消除數組中的重複項,如過在沒有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出發的這個跨頁面的傳送了。
以上三個問題是我在做項目的時候遇到的小問題,把它們寫下來,感覺不錯。