2010年8月11日 星期三

以資料庫方式存取 excel 檔案

安裝 2007 Office system 驅動程式:資料連線元件

連線字串: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\test.xlsx;Extended Properties=Excel 12.0

使用 System.Data.OleDb 存取

語法範例: SELECT * FROM [sheet1$]

2010年8月2日 星期一

GridView 加入自動編號欄位

留水號每頁從1編起
<asp:TemplateField>
<ItemTemplate>
<%#Container.DisplayIndex+1%>
</ItemTemplate>
</asp:TemplateField>

留水號從第一筆編起
<asp:TemplateField>
<ItemTemplate>
<%#Container.DataItemIndex+1%>
</ItemTemplate>
</asp:TemplateField>

2010年6月9日 星期三

如何讓非 ASP.NET 程式檔案也能套用驗證模式

IIS V7
==
修改web.config

   
     
     
     
     
     
   
 


IIS V6
==
進入IIS 管理員的虛擬目錄 > 內容 > 應用程式設定值設定 > 萬用字元應用程式設定 > 插入
輸入下面字串
c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll
「確認該檔案是否存在」不要勾選


這樣所有檔案都會套用 ASP.NET 的驗證模式

2010年6月8日 星期二

解決 ASP.NET 於 IIS 7.0 中執行效能有時會異常緩慢無回應之現象

詳細原因請看這

簡單的說就是在 aspnet.config 修改為
<applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
以上僅針對 .NET 3.5 SP1 才有這個設定可以調整

若為 .NET 2.0 則需要在 REGISTRY 的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 加入 DWORD MaxConcurrentRequestsPerCPU 並設定值為 5000

若為 .NET 4.0 則預設值就已經是 5000 不必再調整

2010年6月7日 星期一

利用ajaxcontroltoolkit:ModalPopupExtender於網頁中彈出小視窗強制等待使用者回應的使用方法

1. 放置一個ASP PANEL,裡面是前景要顯示的內容,預設為不顯示
<asp:Panel ID="pResult" runat="server" Style="display: none" Width="610px" Height="470px" CssClass="modalPopup">...</asp:Panel>
CssClass:指定前景CSS,一般可使用下面設定
.modalPopup {
background-color:#ffffdd;
border-width:3px;
border-style:solid;
border-color:Gray;
padding:3px;
width:250px;
}

2. 放置假的按鈕,提供給ModalPopupExtender 的TargetControlID
<asp:Button ID="ButtonModalPopupExtender" runat="server" Style="display: none" />

3. 放置ModalPopupExtender
<ajaxTool:ModalPopupExtender TargetControlID="ButtonModalPopupExtender" runat="server" ID="ModalPopupExtender1" OkControlID="Button切割完成"
PopupControlID="pResult" DropShadow="True" BehaviorID="modelMsg" BackgroundCssClass="modalBackground">
</ajaxTool:ModalPopupExtender>
TargetControlID:指定觸發顯示內容的按鈕,若要讓程式來決定何時顯示則榜定給假的按鈕並將按鈕隱藏
OkControlID:指定觸發確認事件並隱藏內容的按鈕
PopupControlID:指定前景物件,通常為ASP PANEL
DropShadow:指定是否要有陰影效果
BackgroundCssClass:指定背景的CSS,一般可使用下面的設定
.modalBackground {
background-color:Gray;
filter:alpha(opacity=70);
opacity:0.7;
}

4. 以程式控制顯示前景
呼叫ModalPopupExtender1.Show()

注意:PANEL 跟 BUTTON 不顯示的方法不能使用visible="false",而要使用Style="display: none",否則會造成異常現象

asp.net fileupload 加入副檔名過濾機制範例

<asp:FileUpload ID="FileUpload1" runat="server" Width="100%" onchange="return checkFileExtension(this);" />

<script type="text/javascript">
function checkFileExtension(elem) {
var filePath = elem.value;

if (filePath.indexOf('.') == -1) {
remove(elem);
alert('不正確的副檔名格式');
return false;
}

var validExtensions = new Array();
var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();

validExtensions[0] = 'tif';
validExtensions[1] = 'tiff';
validExtensions[2] = 'pdf';

for (var i = 0; i < validExtensions.length; i++) {
if (ext == validExtensions[i])
return true;
}
remove(elem);
alert('不正確的副檔名格式: ' + ext.toUpperCase());
return false;
}

function remove(control) {
var who = control;
who.value = "";
var who2 = who.cloneNode(false);
who2.onchange = who.onchange;
who.parentNode.replaceChild(who2, who);
}
</script>

2010年4月29日 星期四

GridView 刪除按鈕添加確認訊息範例

1. GridView加入編輯/刪除按鈕於最後
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />

2. 於 rowdatabound 事件加入下面程式
if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == 0)
{
LinkButton lb = e.Row.Cells[e.Row.Cells.Count - 1].Controls[2] as LinkButton;
lb.OnClientClick = "if (!confirm('確定刪除?')) return false;";
}

2010年4月13日 星期二

字串值存入XML檔案如何避免"不合法的名稱字元"訊息

參考以下函數

private string StringToXML(string XMLstring)
{
StringWriter sw = new StringWriter();
System.Xml.XmlTextWriter xmlw = new System.Xml.XmlTextWriter(sw);
xmlw.WriteString(XMLstring);
xmlw.Close();
return sw.ToString();
}

2010年3月2日 星期二

如何使用sqldatasource快取機制

1.修改web.config
<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add name="twlifeacademy" connectionStringName="TWLifeAcademyConnectionString" pollTime="12000"></add>
</databases>
</sqlCacheDependency>
</caching>
</system.web>

2.設定sqldatasource啟用快取
EnableCaching="true"
SqlCacheDependency="twlifeacademy:country;twlifeacademy:student"

3.相關表格加入變更通知trigger
aspnet_regsql -S 172.16.1.111 -U sa -d twlifeacademy -et -t country

2010年1月25日 星期一

解決UltraEdit 開啟文字檔的utf-8 亂碼問題

開啟 C:\Documents and Settings\[使用者名稱]\Application Data\IDMComp\UltraEdit\UEdit32.INI 後,在 [Settings]下加入 「Detect UTF-8 String=0」,即可解決 UltraEdit 誤判格式的問題。

2010年1月12日 星期二

設定 windows live messenger 檔案傳輸使用小紅傘掃毒

指定 AntiVir 資料夾裡的avscan.exe,並在後面加上參數" /GUIMODE=3 /PATH=%FILE%" (包含空格,不包含引號)。

完成後應該像這樣
"C:\Program Files\AntiVir PersonalEdition Classic\avscan.exe" /GUIMODE=3 /PATH=%FILE%
註:
GUIMODE=3 完全不會跳出視窗
GUIMODE=2 跳出簡易檢視視窗
GUIMODE=1 跳出完整檢視視窗

另有進階版請看這:how to configur the file scan with MSN?

Entity Framework 建立新物件並儲存後馬上取得關聯資料

使用 CreateProxy 建立物件,不要直接 new var newmodel = _contextXXX.CreateProxy<yyy>(); ... _contextXXX.yyy.Add(newmodel); await _contextXXX.SaveC...