XForms Module Form Designer
---
2015年6月30日 星期二
2015年6月29日 星期一
2015年6月27日 星期六
asp.net 檔名長度限制
目前測試結果:
/Custcan_SearchCust.aspx ---OK
/Custcancel_SearchCust.aspx --- miss (IIS 7.0 會反彈此檔案已不見)
-----
Custcan_SearchCust-->18 碼 OK 的
1-20碼內是允許的範圍,超過20碼(21碼)即產品找不到檔案的訊息
所以設計取檔名時,還是要考慮一下檔名長度限制問題!!
/Custcan_SearchCust.aspx ---OK
/Custcancel_SearchCust.aspx --- miss (IIS 7.0 會反彈此檔案已不見)
-----
Custcan_SearchCust-->18 碼 OK 的
1-20碼內是允許的範圍,超過20碼(21碼)即產品找不到檔案的訊息
所以設計取檔名時,還是要考慮一下檔名長度限制問題!!
2015年6月25日 星期四
asp.net Popup window on button click
參考引用來源:Popup window on button click
--
--
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="HiddenField1.value = prompt('Enter your feedback','');" />
<asp:HiddenField ID="HiddenField1" runat="server" />
2015年6月24日 星期三
2015年6月23日 星期二
何取得GridView裡TextBox的和RadioButton的值
參考引用來源:何取得GridView裡TextBox的和RadioButton的值
--
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
CType(e.Row.FindControl("TextBox1"), Textbox).Text=111
End If
End Sub
--
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
CType(e.Row.FindControl("TextBox1"), Textbox).Text=111
End If
End Sub
asp.net gridview master detail (vb.net也適用)
查了一整天 gridview master detail 的作法,都不是我要的 ...=.=
主要我是要運用在匯出 excel , word , 網路上的範例都屬呈現的效果;而非針對匯出
底下運用了一些作法,所呈現的 M / D GridView (方法已研究出來,將準備加入系統內)
補上:excel , word 的匯出
---
主要我是要運用在匯出 excel , word , 網路上的範例都屬呈現的效果;而非針對匯出
底下運用了一些作法,所呈現的 M / D GridView (方法已研究出來,將準備加入系統內)
補上:excel , word 的匯出
---
export grid to excel in asp.net when the grid in ContentPlaceHolder
---
using System.IO;
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET
server control at run time. */
}
protected void btnExoprtExcel_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Details.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GV1.AllowPaging = false;
//Change the Header Row back to white color
GV1.HeaderRow.Style.Add("background-color", "#000000");
//Applying stlye to gridview header cells
for (int i = 0; i < GV1.HeaderRow.Cells.Count; i++)
{
GV1.HeaderRow.Cells[i].Style.Add("background-color", "#000000");
}
int j = 1;
//This loop is used to apply stlye to cells based on particular row
foreach (GridViewRow gvrow in GV1.Rows)
{
if (j <= GV1.Rows.Count)
{
if (j % 2 != 0)
{
for (int k = 0; k < gvrow.Cells.Count; k++)
{
gvrow.Cells[k].Style.Add("background-color", "#FFFFFF");
}
}
}
j++;
}
GV1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
2015年6月22日 星期一
mssql master detail
參考引用來源:(TRANSACT SQL) how to create Master-Detail in a row using sql?
--
SELECT ID AS Column1, NAME AS Column2, Address AS Column3, ID AS SortColumn1, 1 AS SortColumn2
UNION
SELECT '', PHONE, EMAIL, ID AS SortColumn1, 2 AS SortColumn2
ORDER BY SortColumn1, SortColumn2
--
SELECT ID AS Column1, NAME AS Column2, Address AS Column3, ID AS SortColumn1, 1 AS SortColumn2
UNION
SELECT '', PHONE, EMAIL, ID AS SortColumn1, 2 AS SortColumn2
ORDER BY SortColumn1, SortColumn2
Web 進銷存
asp.net master detail invoicing system
Web 進銷存雛型已出來了!!
基本表都還OK,麻煩的還是在 master detail 的架構!!
一直開發 windows ap , 本次鑽研並開發 Web asp.net ; 雖然未使用 MVC 框架開發,但我還是喜歡使用傳統非MVC開發,較符合原本的 windows ap 開發概念!
底下是完成 master detail 單據主檔/明細的功能!
----
Web 進銷存雛型已出來了!!
基本表都還OK,麻煩的還是在 master detail 的架構!!
一直開發 windows ap , 本次鑽研並開發 Web asp.net ; 雖然未使用 MVC 框架開發,但我還是喜歡使用傳統非MVC開發,較符合原本的 windows ap 開發概念!
底下是完成 master detail 單據主檔/明細的功能!
----
2015年6月20日 星期六
asp.net TextBox 值相加
參考來源:[習題]三個數字相加....(使用TextBox,很基礎的題目)
---
只要加入:
1. TextBox控制項加入 AutoPostBack="true"
2.
Protected Sub TextBox3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
Dim sum As Integer = CInt(TextBox3.Text) + CInt(TextBox2.Text) + CInt(TextBox1.Text)
Label1.Text = String.Format("{0:C}", sum)
'--轉換成貨幣格式
End Sub
---
只要加入:
1. TextBox控制項加入 AutoPostBack="true"
2.
Protected Sub TextBox3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
Dim sum As Integer = CInt(TextBox3.Text) + CInt(TextBox2.Text) + CInt(TextBox1.Text)
Label1.Text = String.Format("{0:C}", sum)
'--轉換成貨幣格式
End Sub
給Textbox填值,PostBack後卻值卻不見的問題
參考引用來源:請教一個JavaScript給Textbox填值,PostBack後卻值卻不見的問題
--
重點在這一段:
Code Snippet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.Request.Form("TextBox1") IsNot Nothing Then
TextBox1.Text = Page.Request.Form("TextBox1")
End If
End Sub
--
重點在這一段:
Code Snippet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.Request.Form("TextBox1") IsNot Nothing Then
TextBox1.Text = Page.Request.Form("TextBox1")
End If
End Sub
2015年6月18日 星期四
2015年6月16日 星期二
asp.net 父子視窗傳值
參考引用來源:父子視窗傳值--
父子視窗傳值
承前面一篇的民國年份之月曆開發,在點選完日期後當然要將日期傳回至本來的父視窗,這時就面臨傳值的問題,以下為透過javascript的2個小方法。
(假設父視窗叫做parent.aspx,用來放置小月曆的子視窗叫做child.aspx)
1.方法一
開啟方式:window.open
傳值方式:opener
開啟方式ex:window.open('child.aspx','月曆選取器','width=300,height=300')
傳值方式ex:opener.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
2.方法二
開啟方式:window.showModalDialog
傳值方式:window.dialogArguments.form1.SelectDay.value = day;
開啟方式ex:window.showModalDialog('child.aspx',window,'dialogWidth:300;dialogHeight:300;')
傳值方式ex:window.dialogArguments.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
父子視窗傳值
承前面一篇的民國年份之月曆開發,在點選完日期後當然要將日期傳回至本來的父視窗,這時就面臨傳值的問題,以下為透過javascript的2個小方法。
(假設父視窗叫做parent.aspx,用來放置小月曆的子視窗叫做child.aspx)
1.方法一
開啟方式:window.open
傳值方式:opener
開啟方式ex:window.open('child.aspx','月曆選取器','width=300,height=300')
傳值方式ex:opener.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
2.方法二
開啟方式:window.showModalDialog
傳值方式:window.dialogArguments.form1.SelectDay.value = day;
開啟方式ex:window.showModalDialog('child.aspx',window,'dialogWidth:300;dialogHeight:300;')
傳值方式ex:window.dialogArguments.form1.SelectDay.value = day;
(form1是父視窗的form名稱,SelectDay是父視窗裡面的一個text input,day就是子視窗小月曆提供的值)
asp.net showModalDialog
asp:Button ID="btn_select" runat="server" Text="選擇權限/新增群組"
onclick="btnSelect_Click" Width="133px" OnClientClick="showModalDialog('select_group.aspx',window,'dialogWidth:400px; dialogHeight:300px; center:yes; status:0;')" />
onclick="btnSelect_Click" Width="133px" OnClientClick="showModalDialog('select_group.aspx',window,'dialogWidth:400px; dialogHeight:300px; center:yes; status:0;')" />
asp.net中Bind和Eval的有什麼區別
TemplateField模組中Bind和Eval的有什麼區別
eval()方法在運行時使用反射執行後期綁定計算,因此與標準的ASP.NET數據綁定方法bind相比,會導致性能明顯下降。它一般用在綁定時需要格式化字符串的情況下。多數情況盡量少用此方法
Eval 方法是靜態(只讀)方法,該方法採用數據字段的值作為參數並將其作為字符串返回。 Bind 方法支持讀/寫功能,可以檢索數據綁定控件的值並將任何更改提交回數據庫。
使用 Eval 方法
Eval 方法可計算數據綁定控件(如GridView、DetailsView 和FormView 控件)的模板中的後期綁定數據表達式。在運行時,Eval 方法調用DataBinder 對象的Eval 方法,同時引用命名容器的當前數據項。命名容器通常是包含完整記錄的數據綁定控件的最小組成部分,如GridView 控件中的一行。因此,只能對數據綁定控件的模板內的綁定使用Eval 方法。
Eval 方法以數據字段的名稱作為參數,從數據源的當前記錄返回一個包含該字段值的字符串。可以提供第二個參數來指定返回字符串的格式,該參數為可選參數。字符串格式參數使用為String 類的Format 方法定義的語法。
使用 Bind 方法
Bind 方法與Eval 方法有一些相似之處,但也存在很大的差異。雖然可以像使用Eval 方法一樣使用Bind 方法來檢索數據綁定字段的值,但當數據可以被修改時,還是要使用Bind 方法。
在ASP.NET 中,數據綁定控件(如GridView、DetailsView 和FormView 控件)可自動使用數據源控件的更新、刪除和插入操作。例如,如果已為數據源控件定義了SQL Select、Insert、Delete 和Update 語句,則通過使用GridView、DetailsView 或FormView 控件模板中的Bind 方法,就可以使控件從模板中的子控件中提取值,並將這些值傳遞給數據源控件。然後數據源控件將執行適當的數據庫命令。出於這個原因,在數據綁定控件的EditItemTemplate 或InsertItemTemplate 中要使用Bind 函數。
Bind 方法通常與輸入控件一起使用,例如由編輯模式中的GridView 行所呈現的TextBox 控件。當數據綁定控件將這些輸入控件作為自身呈現的一部分創建時,該方法便可提取輸入值。
eval()方法在運行時使用反射執行後期綁定計算,因此與標準的ASP.NET數據綁定方法bind相比,會導致性能明顯下降。它一般用在綁定時需要格式化字符串的情況下。多數情況盡量少用此方法
Eval 方法是靜態(只讀)方法,該方法採用數據字段的值作為參數並將其作為字符串返回。 Bind 方法支持讀/寫功能,可以檢索數據綁定控件的值並將任何更改提交回數據庫。
使用 Eval 方法
Eval 方法可計算數據綁定控件(如GridView、DetailsView 和FormView 控件)的模板中的後期綁定數據表達式。在運行時,Eval 方法調用DataBinder 對象的Eval 方法,同時引用命名容器的當前數據項。命名容器通常是包含完整記錄的數據綁定控件的最小組成部分,如GridView 控件中的一行。因此,只能對數據綁定控件的模板內的綁定使用Eval 方法。
Eval 方法以數據字段的名稱作為參數,從數據源的當前記錄返回一個包含該字段值的字符串。可以提供第二個參數來指定返回字符串的格式,該參數為可選參數。字符串格式參數使用為String 類的Format 方法定義的語法。
使用 Bind 方法
Bind 方法與Eval 方法有一些相似之處,但也存在很大的差異。雖然可以像使用Eval 方法一樣使用Bind 方法來檢索數據綁定字段的值,但當數據可以被修改時,還是要使用Bind 方法。
在ASP.NET 中,數據綁定控件(如GridView、DetailsView 和FormView 控件)可自動使用數據源控件的更新、刪除和插入操作。例如,如果已為數據源控件定義了SQL Select、Insert、Delete 和Update 語句,則通過使用GridView、DetailsView 或FormView 控件模板中的Bind 方法,就可以使控件從模板中的子控件中提取值,並將這些值傳遞給數據源控件。然後數據源控件將執行適當的數據庫命令。出於這個原因,在數據綁定控件的EditItemTemplate 或InsertItemTemplate 中要使用Bind 函數。
Bind 方法通常與輸入控件一起使用,例如由編輯模式中的GridView 行所呈現的TextBox 控件。當數據綁定控件將這些輸入控件作為自身呈現的一部分創建時,該方法便可提取輸入值。
ASP.NET跨頁面傳值方法
1. 使用QueryString變量
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對於傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session變量
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用於用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
4. 使用Cookie對象變量
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
5. 使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結構簡單的數值時,可以使用這個方法。但是對於傳遞數組或對象的話,就不能用這個方法了。下面是一個例子:
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 對象變量
Application對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session變量
想必這個肯定是大家使用中最常見的用法了,其操作與Application類似,作用於用戶個人,所以,過量的存儲會導致服務器內存資源的耗盡。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
4. 使用Cookie對象變量
這個也是大家常使用的方法,與Session一樣,其是什對每一個用戶而言的,但是有個本質的區別,即Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用。
a.aspx的C#代碼
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
5. 使用Server.Transfer方法
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
a.aspx的C#代碼
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代碼
private void Page_Load(object sender, EventArgs e)
{
a newWeb; //實例a窗體
newWeb = (source)Context.Handler;
string name;
name = newWeb.Name;
}
asp.net FileUpload 上傳檔案大小超過預設
當上傳檔案後,出現「Maximum Request Length Exceeded」
是因為上傳的檔案超過預設大小
預設為4096>>4MB
異動如下:
<system.web>
<httpRuntime maxRequestLength="10240" />
</system.web>
是因為上傳的檔案超過預設大小
預設為4096>>4MB
異動如下:
<system.web>
<httpRuntime maxRequestLength="10240" />
</system.web>
Linq 相同Group 中資料分隔
Data:
Name No Qty
A 1 50
A 2 60
B 12 10
C 13 70
Result:
A 1,2 110
B 12 10
C 13 70
var groupResult = data.ToLookup(s => s.Name);
string symbol=",";
foreach (var c in groupCPSPNResult)
{
result.Add(new
{
Name= c.Key.Name,
No= string.Join(symbol, c.Select(s => s.No).ToArray()),
Total= c.Sum(s => s.Qty)
});
}
Name No Qty
A 1 50
A 2 60
B 12 10
C 13 70
Result:
A 1,2 110
B 12 10
C 13 70
var groupResult = data.ToLookup(s => s.Name);
string symbol=",";
foreach (var c in groupCPSPNResult)
{
result.Add(new
{
Name= c.Key.Name,
No= string.Join(symbol, c.Select(s => s.No).ToArray()),
Total= c.Sum(s => s.Qty)
});
}
Close 畫面 並將父畫面Reload
Close 畫面 並將父畫面Reload
Script:
window.opener.location.reload();
window.close();
C# 編寫JavaScript 語法
//直接關閉視窗
public void Close()
{
Page p = (Page)System.Web.HttpContext.Current.Handler;
ClientScriptManager CSM = p.ClientScript;
String ScriptName = "close";
String ScriptMsg = "window.opener.location.reload();window.close();";
Type CsType = p.GetType();
if (!CSM.IsStartupScriptRegistered(CsType, ScriptName))
{
CSM.RegisterStartupScript(CsType, ScriptName, ScriptMsg, true);
}
}
Script:
window.opener.location.reload();
window.close();
C# 編寫JavaScript 語法
//直接關閉視窗
public void Close()
{
Page p = (Page)System.Web.HttpContext.Current.Handler;
ClientScriptManager CSM = p.ClientScript;
String ScriptName = "close";
String ScriptMsg = "window.opener.location.reload();window.close();";
Type CsType = p.GetType();
if (!CSM.IsStartupScriptRegistered(CsType, ScriptName))
{
CSM.RegisterStartupScript(CsType, ScriptName, ScriptMsg, true);
}
}
子母視窗傳值 windowOpen()
參考引用來源:{JavaScript} 子母視窗傳值 windowOpen()
--
母視窗
window.open('TestReturnValue2.aspx?context=1');
TestReturnValue2子視窗
//當Label2為input 之html tag
window.opener.document.getElementById('Label2').value = 'abc';
//當Label1為asp.net之tag
window.opener.document.getElementById('Label1').innerHTML = 'abc';
-------------------------------------------------------------------------------------
使用user control傳值
母視窗
abc.ascx 上的control觸發:
window.open('TestReturnValue2.aspx?context=1');
abc.ascx上保留id 為return的control接回傳值
子視窗
cde.ascx 上的control觸發:
var returnValue = $('#<%=DataSource.ClientID %>').val();
window.opener.document.getElementById('abc_return').value = returnValue;
結論:用底線隔開取得母視窗中user control上的control
--
母視窗
window.open('TestReturnValue2.aspx?context=1');
TestReturnValue2子視窗
//當Label2為input 之html tag
window.opener.document.getElementById('Label2').value = 'abc';
//當Label1為asp.net之tag
window.opener.document.getElementById('Label1').innerHTML = 'abc';
-------------------------------------------------------------------------------------
使用user control傳值
母視窗
abc.ascx 上的control觸發:
window.open('TestReturnValue2.aspx?context=1');
abc.ascx上保留id 為return的control接回傳值
子視窗
cde.ascx 上的control觸發:
var returnValue = $('#<%=DataSource.ClientID %>').val();
window.opener.document.getElementById('abc_return').value = returnValue;
結論:用底線隔開取得母視窗中user control上的control
ASP.NET 子視窗日曆傳值回母視窗控制項上
說明:點選母視窗上的TextBox後,彈出一日曆子視窗,點選日期後回傳至母視窗TextBox上。
--
--
Parent.aspx
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function SetDate(ClientID)
{
var Url = '../modaldialog/SetDate.aspx?DialogClientID=' + ClientID;
window.open(Url, 'Calendar', 'width=335, height=170');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtDate" runat="server" onclick="SetDate(this.id)"></asp:TextBox>
</form>
</body>
Son.aspx
protected void Calendar1_SelectionChanged(object sender, System.EventArgs e)
{
if (Request.QueryString["DialogClientID"] != null)
{
string strClientID = Request["DialogClientID"].ToString().Trim();
StringBuilder sbJScript = new StringBuilder();
sbJScript.Append("window.opener.document.getElementById('" + strClientID + "').value = '" + this.Calendar1.SelectedDate.ToString("yyyy/MM/dd") + "';");
sbJScript.Append("window.close();");
ClientScript.RegisterStartupScript(this.GetType(), "ReturnValue", sbJScript.ToString(), true);
}
}
2015年6月15日 星期一
asp.net fileupload image mssql
2015年6月14日 星期日
asp.net dropdownlist selectedindexchanged
真是奇妙的運用 , 好不習慣!! 習慣了 windows app 開發 , web 有點...
參考引用來源:DropDownList的SelectedIndexChanged事件
底下code :
---
參考引用來源:DropDownList的SelectedIndexChanged事件
底下code :
---
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DBconnStr"].ToString());
SqlDataAdapter sqlda = new SqlDataAdapter();
sqlda.SelectCommand = new SqlCommand("select id,name from demouser", conn);
DataTable dt = new DataTable();
sqlda.Fill(dt);
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataTextField = "name";
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.TextBox2.Text = this.DropDownList1.SelectedItem.Value;
}
<form id="form1" runat="server">
<br />
<br />
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</form>
MSSQL 依日期自動產流水序號
DECLARE @dt CHAR(6)
set @dt=CONVERT(CHAR(6),GETDATE(),12)
SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)
FROM tb WITH(XLOCK,PAGLOCK)
set @dt=CONVERT(CHAR(6),GETDATE(),12)
SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)
FROM tb WITH(XLOCK,PAGLOCK)
2015年6月13日 星期六
2015年6月11日 星期四
2015年6月10日 星期三
ASP.NET GridView匯出Excel並解決亂碼問題
ASP.NET 將GridView內的資料匯出成Excel檔
---
看了上面這篇後,總算解決了問題點
如code:重點在這一行了!!
---
看了上面這篇後,總算解決了問題點
如code:重點在這一行了!!
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Button2_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");
string excelFileName = "測試Excel檔案.xls";
Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlEncode(excelFileName));
Response.ContentType = "application/excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
// '處理'GridView' 的控制項 'GridView' 必須置於有 runat=server 的表單標記之中
}
}
asp.net gridview to datatable
參考引用來源:如何將GridView或SqlDataSource轉成DataTable
--
Dim DT As New DataTable
DT.Columns.Add("欄位一")
DT.Columns.Add("欄位二")
DT.Columns.Add("欄位三")
..........
Dim ROW As DataRow
For I As Integer = 0 To Me.GridView1.Rows.Count - 1
ROW = DT.NewRow
ROW(0) = Me.GridView1.Rows(I).Cells(0).Text
ROW(1) = Me.GridView1.Rows(I).Cells(1).Text
ROW(2) = Me.GridView1.Rows(I).Cells(2).Text
..........
DT.Rows.Add(ROW)
Next
--
找一堆方法,要處理 GridView 內的CheckBox , 就只能先轉到 datatable 再來處理值後;再綁定回去!
--
一堆人的寫法都是把 CheckBox 綁在 GridView 內 ...= . ='' 這單行的不是我要的! 只能自理了!
--
Dim DT As New DataTable
DT.Columns.Add("欄位一")
DT.Columns.Add("欄位二")
DT.Columns.Add("欄位三")
..........
Dim ROW As DataRow
For I As Integer = 0 To Me.GridView1.Rows.Count - 1
ROW = DT.NewRow
ROW(0) = Me.GridView1.Rows(I).Cells(0).Text
ROW(1) = Me.GridView1.Rows(I).Cells(1).Text
ROW(2) = Me.GridView1.Rows(I).Cells(2).Text
..........
DT.Rows.Add(ROW)
Next
--
找一堆方法,要處理 GridView 內的CheckBox , 就只能先轉到 datatable 再來處理值後;再綁定回去!
--
一堆人的寫法都是把 CheckBox 綁在 GridView 內 ...= . ='' 這單行的不是我要的! 只能自理了!
2015年6月9日 星期二
how to edit,update row in gridview
請參考來源:how to edit,update row in gridview
---
---
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="GridViewComplete.aspx.cs"
Inherits="GridViewComplete" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Grid View Add Update Delete</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id"
ShowFooter="true" AllowPaging="true" PageSize="4"
AllowSorting="True"
OnRowCommand="GridView1_RowCommand"
OnPageIndexChanging="GridView1_PageIndexChanging"
OnRowDeleting="GridView1_RowDeleting"
OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating"
OnSorting="GridView1_Sorting"
OnRowCancelingEdit="GridView1_RowCancelingEdit">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:TemplateField HeaderText="Id" InsertVisible="False" SortExpression="Id">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# Eval("Id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server"
Text='<%# Bind("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" ShowHeader="True"/>
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server"
Text='<%# Bind("Name") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="QuantityTextBox" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Description" SortExpression="Description">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"
Text='<%# Bind("Description") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server"
Text='<%# Bind("Description") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="DescriptionTextBox" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton ID="btnNew" runat="server"
CommandName="New" Text="New" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div style="color:Red">
<asp:Label ID="lblMsg" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
程式區:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class GridViewComplete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
public void BindGrid()
{
if (Session["dt"] == null)
{
GridView1.DataSource = CreateDGDataSource();
GridView1.DataBind();
}
else
{
GridView1.DataSource = Session["dt"] as DataTable;
GridView1.DataBind();
}
}
public DataTable CreateDGDataSource()
{
// Create sample data for the DataList control.
DataTable dt = new DataTable();
DataRow dr;
int i;
int y;
// Define the columns of the table.
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Description", typeof(string)));
//Make some rows and put some sample data in
for (i = 1; i <= 5; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Name" + "-" + i;
dr[2] = "Item " + "_" + i;
//add the row to the datatable
dt.Rows.Add(dr);
}
Session["y"] = i;
Session["dt"] = dt;
return dt;
}
public ICollection CreateDGDataSource(int CategoryID)
{
DataView dv = new DataView(CreateDGDataSource(), "ID=" + CategoryID, null,
DataViewRowState.CurrentRows);
return dv;
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
if (e.CommandName.Equals("New"))
{
LinkButton btnNew = e.CommandSource as LinkButton;
GridViewRow row = btnNew.NamingContainer as GridViewRow;
if (row == null)
{
return;
}
TextBox txtCatName = row.FindControl("QuantityTextBox") as TextBox;
TextBox txtDescription = row.FindControl("DescriptionTextBox") as TextBox;
DataTable dt = Session["dt"] as DataTable;
DataRow dr;
int intId = (int)Session["y"];
dr = dt.NewRow();
dr["Id"] = intId++;
Session["y"] = intId;
dr["Name"] = txtCatName.Text;
dr["Description"] = txtDescription.Text;
dt.Rows.Add(dr);
dt.AcceptChanges();
Session["dt"] = dt;
GridView1.DataSource = Session["dt"] as DataTable;
GridView1.DataBind();
}
}
catch (Exception ex)
{
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = Session["dt"] as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = dataView;
GridView1.DataBind();
}
}
private string ConvertSortDirectionToSql(SortDirection sortDireciton)
{
string newSortDirection = String.Empty;
switch (sortDireciton)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
return newSortDirection;
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int ID = (int)GridView1.DataKeys[e.RowIndex].Value;
// Query the database and get the values based on the ID and delete it.
lblMsg.Text = "Deleted Record Id" +ID.ToString();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
// Retrieve the row being edited.
int index = GridView1.EditIndex;
GridViewRow row = GridView1.Rows[index];
TextBox t1 = row.FindControl("TextBox1") as TextBox;
TextBox t2 = row.FindControl("TextBox2") as TextBox;
string t3 = GridView1.DataKeys[e.RowIndex].Value.ToString();
lblMsg.Text = "Updated record " + t1.Text + "," + t2.Text + "Value From Bound Field" + t3;
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGrid();
}
}
ASP.NET GridView轉成CVS檔案 (解決中文字亂碼問題)
參考引用來源:[ASP.NET]GridView轉成CVS檔案 (解決中文字亂碼問題)
--
private void ExportCVS()
{
Response.Clear();
Response.Buffer = true;
string filename = DateTime.Now.ToString("yyyyMMdd") + "test.csv";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.Charset = "BIG5";
Response.ContentType = "application/text";
Response.ContentEncoding = Encoding.GetEncoding(950);//950就是所謂的BIG5
gvList.AllowPaging = false;
//gvList.DataBind();
QueryData();
StringBuilder sb = new StringBuilder();
for (int k = 0; k < gvList.Columns.Count; k++)
{
//add separator
sb.Append(gvList.Columns[k].HeaderText + ',');
}
//append new line
sb.Append("\r\n");
for (int i = 0; i < gvList.Rows.Count; i++)
{
for (int k = 0; k < gvList.Columns.Count; k++)
{
//add separator
sb.Append(gvList.Rows[i].Cells[k].Text + ',');
}
//append new line
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
gvList.AllowPaging = true ;
QueryData();
}
--
private void ExportCVS()
{
Response.Clear();
Response.Buffer = true;
string filename = DateTime.Now.ToString("yyyyMMdd") + "test.csv";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.Charset = "BIG5";
Response.ContentType = "application/text";
Response.ContentEncoding = Encoding.GetEncoding(950);//950就是所謂的BIG5
gvList.AllowPaging = false;
//gvList.DataBind();
QueryData();
StringBuilder sb = new StringBuilder();
for (int k = 0; k < gvList.Columns.Count; k++)
{
//add separator
sb.Append(gvList.Columns[k].HeaderText + ',');
}
//append new line
sb.Append("\r\n");
for (int i = 0; i < gvList.Rows.Count; i++)
{
for (int k = 0; k < gvList.Columns.Count; k++)
{
//add separator
sb.Append(gvList.Rows[i].Cells[k].Text + ',');
}
//append new line
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
gvList.AllowPaging = true ;
QueryData();
}
Export DataSet or DataTable to Word Excel PDF and CSV Formats
請參考來源:Export DataSet or DataTable to Word Excel PDF and CSV Formats
---
另外:Office 2007 File Format MIME Types for HTTP Content Streaming 格式宣告
參考引用來源:Office 2007 File Format MIME Types for HTTP Content Streaming
---
.doc application/msword
.dot application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm application/vnd.ms-word.document.macroEnabled.12
.dotm application/vnd.ms-word.template.macroEnabled.12
.xls application/vnd.ms-excel
.xlt application/vnd.ms-excel
.xla application/vnd.ms-excel
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm application/vnd.ms-excel.sheet.macroEnabled.12
.xltm application/vnd.ms-excel.template.macroEnabled.12
.xlam application/vnd.ms-excel.addin.macroEnabled.12
.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12
.ppt application/vnd.ms-powerpoint
.pot application/vnd.ms-powerpoint
.pps application/vnd.ms-powerpoint
.ppa application/vnd.ms-powerpoint
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12
---
另外:Office 2007 File Format MIME Types for HTTP Content Streaming 格式宣告
參考引用來源:Office 2007 File Format MIME Types for HTTP Content Streaming
---
.doc application/msword
.dot application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm application/vnd.ms-word.document.macroEnabled.12
.dotm application/vnd.ms-word.template.macroEnabled.12
.xls application/vnd.ms-excel
.xlt application/vnd.ms-excel
.xla application/vnd.ms-excel
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm application/vnd.ms-excel.sheet.macroEnabled.12
.xltm application/vnd.ms-excel.template.macroEnabled.12
.xlam application/vnd.ms-excel.addin.macroEnabled.12
.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12
.ppt application/vnd.ms-powerpoint
.pot application/vnd.ms-powerpoint
.pps application/vnd.ms-powerpoint
.ppa application/vnd.ms-powerpoint
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12
2015年6月8日 星期一
2015年6月7日 星期日
讓 ASP.NET 也可以使用 MsgBox 方法
請參考引用來源:讓 ASP.NET 也可以使用 MsgBox 方法
--
--
'''''' 彈出提示訊息。 ''' ''' 訊息文字。 Public Sub MsgBox(ByVal Message As String) Dim sScript As String Dim sMessage As String sMessage = Strings.Replace(Message, "'", "\'") '處理單引號 sMessage = Strings.Replace(sMessage, vbNewLine, "\n") '處理換行 sScript = String.Format("alert('{0}');", sMessage) ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alert", sScript, True) End Sub
逐一查看控制項集合以尋找頁面上的 Web Form 控制項
參考引用來源MSDN:HOW TO:逐一查看控制項集合以尋找頁面上的 Web Form 控制項
--
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim allTextBoxValues As String = ""
Dim c As Control
Dim childc As Control
For Each c In Page.Controls
For Each childc In c.Controls
If TypeOf childc Is TextBox Then
allTextBoxValues &= CType(childc, TextBox).Text & ","
End If
Next
Next
If allTextBoxValues <> "" Then
Label1.Text = allTextBoxValues
End If
End Sub
--
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim allTextBoxValues As String = ""
Dim c As Control
Dim childc As Control
For Each c In Page.Controls
For Each childc In c.Controls
If TypeOf childc Is TextBox Then
allTextBoxValues &= CType(childc, TextBox).Text & ","
End If
Next
Next
If allTextBoxValues <> "" Then
Label1.Text = allTextBoxValues
End If
End Sub
解決 DropDownList 永遠取得第一項的值
問題描述:如果 DropDownList 的項目是以動態方式產生的,又在產生的程式碼放置在 Page_Load() 中,將會發生取回的值永遠等於第一項的問題
發生原因:因為在 DropDownList 動態產生的過程中,項目會被重綁定一次,且會把SelectedIndex的值設為預設值0,自然取回的值就永遠等於第一項
解決辦法:DropDownList 動態產生程式碼放置在 !isPostBack 中
EX:
protected void Page_Load(object sender, EventArgs e)
{
if( !isPostBack ) loadDropDownList();
}
發生原因:因為在 DropDownList 動態產生的過程中,項目會被重綁定一次,且會把SelectedIndex的值設為預設值0,自然取回的值就永遠等於第一項
解決辦法:DropDownList 動態產生程式碼放置在 !isPostBack 中
EX:
protected void Page_Load(object sender, EventArgs e)
{
if( !isPostBack ) loadDropDownList();
}
Page EnableEventValidation="true" 無效的回傳或回呼引數
無效的回傳或回呼引數。已在組態中使用
或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證。
基於安全性理由,這項功能驗證回傳或回呼引數是來自原本呈現它們的伺服器控制項。
如果資料為有效並且是必需的,請使用 ClientScriptManager.RegisterForEventValidation 方法註冊回傳
或回呼資料,以進行驗證。
---
參考1
參考2
---
1. 直接在 <%@ Page %> 中使用 EnableEventValidation="false" 即可。
2. 若需要在全站中使用這個設定,則要在 Web.config 中設:
<configuration>
<system.web>
<page enableEventValidation="false" />
</system.web>
</configuration>
或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證。
基於安全性理由,這項功能驗證回傳或回呼引數是來自原本呈現它們的伺服器控制項。
如果資料為有效並且是必需的,請使用 ClientScriptManager.RegisterForEventValidation 方法註冊回傳
或回呼資料,以進行驗證。
---
參考1
參考2
---
1. 直接在 <%@ Page %> 中使用 EnableEventValidation="false" 即可。
2. 若需要在全站中使用這個設定,則要在 Web.config 中設:
<configuration>
<system.web>
<page enableEventValidation="false" />
</system.web>
</configuration>
2015年6月6日 星期六
asp.net target
請參考來源:HyperLink.Target 屬性
---
_blank 在無框架的新視窗中呈現內容。
_parent 在即時父代框架組中呈現內容。
_search 在搜尋窗格中呈現內容。
_self 在擁有焦點 (Focus) 的框架中呈現內容。
_top 在無框架的完整視窗中呈現內容。
---
_blank 在無框架的新視窗中呈現內容。
_parent 在即時父代框架組中呈現內容。
_search 在搜尋窗格中呈現內容。
_self 在擁有焦點 (Focus) 的框架中呈現內容。
_top 在無框架的完整視窗中呈現內容。
dropdownlist 使用方法
參考引用來源:How can i set value and text dynamically to a dropdown list
--
If your datatable name is DtRecords then use following in Page Load to bind:
DropDownList1.DataSource = dtRecords;
DropDownList1.DataTextField = "cname";
DropDownList1.DataValueField = "cid";
DropDownList1.DataBind();
To get data on Button click;
string strCName = DropDownList.SelectedItem.Text; //Gets CName
string strCId = DropDownList.SelectedValue; //Gets CId
--
If your datatable name is DtRecords then use following in Page Load to bind:
DropDownList1.DataSource = dtRecords;
DropDownList1.DataTextField = "cname";
DropDownList1.DataValueField = "cid";
DropDownList1.DataBind();
To get data on Button click;
string strCName = DropDownList.SelectedItem.Text; //Gets CName
string strCId = DropDownList.SelectedValue; //Gets CId
自動轉址與延遲轉址
.Net提供轉址功能
#Page.Response.Redirect("目標網址")
使用以下也可以
#Page.Response.Write("<script> location.href= ('目標網址'); </script> ")
以上兩句的不同址是在差在PostBack
但有時我們要讓Client看到一些訊息後...再轉址,就會有延遲轉址的問題...
時間單位為千分之一,所以需要三秒後轉跳即是在時間欄位輸入 3000
#Page.Response.Write(" <script> setTimeout('location.href=""目標網址""',時間); </script> ")
#Page.Response.Redirect("目標網址")
使用以下也可以
#Page.Response.Write("<script> location.href= ('目標網址'); </script> ")
以上兩句的不同址是在差在PostBack
但有時我們要讓Client看到一些訊息後...再轉址,就會有延遲轉址的問題...
時間單位為千分之一,所以需要三秒後轉跳即是在時間欄位輸入 3000
#Page.Response.Write(" <script> setTimeout('location.href=""目標網址""',時間); </script> ")
WebClient 抓取網頁內容
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
txtRealPathData.Text = client.DownloadString(new Uri(“http://xxxx”));
client.Encoding = Encoding.UTF8;
txtRealPathData.Text = client.DownloadString(new Uri(“http://xxxx”));
2015年6月5日 星期五
Win 7 右下角音量控制圖示 不見了?
參考引用來源
---
Del+Ctrl+Alt打開【工作管理員】,
然後選擇【處理程序】找到「explorer.exe」,右鍵點擊「結束處理程序」。
然後再點擊【檔案】選擇「新工作」,然後輸入「explorer.exe」後點擊確定。
再次打開【通知區域圖示】恢復正常囉!
---
Del+Ctrl+Alt打開【工作管理員】,
然後選擇【處理程序】找到「explorer.exe」,右鍵點擊「結束處理程序」。
然後再點擊【檔案】選擇「新工作」,然後輸入「explorer.exe」後點擊確定。
再次打開【通知區域圖示】恢復正常囉!
2015年6月4日 星期四
ASP.NET MVC 整理的相關文件連結
以下是部落格中有關ASP.NET MVC類別的文章整理,依據各文章內容分門別類做了整理,讓各位可以快速找到資料。
康廷數位 - Blog: ASP.NET MVC
---
好多唷!! 不用到處找!! 這兒的連結夠多了!!
康廷數位 - Blog: ASP.NET MVC
---
好多唷!! 不用到處找!! 這兒的連結夠多了!!
Visual Studio 沒有權限可從系統登錄讀取範本資訊 ( for VS2012 update 4)
----
又來了!! 熊熊又卡在這一關卡!
翻了一下自己的文章,以前也發生過這種問題!
發生原因:vs2012 update 4 後,整個權限被異動過! 造成要新建專案,完全都權限不足!
只能新使用vs2010 或 vs 2008 先新建專案後! 權限才會轉移回到 VS 身上
再執行 vs 2012 新建專案,果然可以了!
----
微軟在這一部分,還是沒有處理好...唉!
作業系統內若有併存2個版本(含以上) 就會有"Visual Studio 沒有權限可從系統登錄讀取範本資訊"當最高版有更新過後,就會再度發生這樣的情況!!
----
網路是查不到這解法的,自己留著備查!! (也供遇到的人,可採用我這個方法去解套)
訂閱:
文章 (Atom)