javascript
前台为html后台是asp在vs2012中建立什么,Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得...
Asp.net中后臺*.cs與前臺JS腳本之間相互調用的幾點心得
< type="text/javascript"> < type="text/javascript">
一、 經 常需要在asp.net中“后臺代碼*.cs文件中調用javascript腳本中已經定義好的腳本函數”。
基本包括一下幾種辦法:
1. 用Response.Write() 方法寫入腳本:
比如在單擊按鈕后,先操作數據庫,完了后顯示已經完成,可以在最后想調用的地方寫上:
Response.Write("" );
這個方法有個缺陷就是不能調用腳本文件中的自定義的函數,只能調用內部函數,具體調用自定義的函數只能在Response.Write寫上函數定義,比如:Response.Write ("" );
2. 用ClientScript 類動態添加腳本:
用法如下:在想調用某個javascript腳本函數的地方添加代碼,注意要保證MyFun已經在腳本文件中定義過了。
ClientScript.RegisterStartupScript (ClientScript.GetType (), "myscript ", " ");
例子:StringBuilder sb = new StringBuilder();
sb.Append("
sb.Append("Button2_onclick('" + serverPath + "')");
sb.Append("");
ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());
這個方法比Response.Write更方便一些,可以直接調用腳本文件中的自定義函數。
3. 普通的添加控件的Attributes 屬性:
對于普通按鈕就是: Button1.Attributes.Add ("onclick " ,"MyFun(); " );
只能在Onload中或類似于onload的初始化過程中添加才有效。而且是先執行腳本函數,無法改變執行順序。
注意,以上所有方法中,后臺代碼都不能有轉化當前頁的代碼,比如Redirect等,要把轉頁代碼放在腳本里面。
4.定義Literal控件
用法如下:
Literal lit=new Literal();
lit.text="";
this.page.Controls.Add(lit);
5.OnClientClick??? (vs2003不支持這個方法)
client_click() 就是javascript的一個方法。
二、當然有時候也需要在“前臺JS執行或調用后臺的一些方法函數”,很多時候都會想到Ajax來解決,最近剛好總結了一個不用Ajax卻很簡單實用的方法:
1. 這里以Table中的行刪除為例,如果table中的標簽內容是從后臺取出后在render到前臺的話,行中的刪除按鈕可以寫成JS觸發方式:
view plaincopy to clipboardprint?
刪除
刪除
2. 所調用的前臺js函數為:
view plaincopy to clipboardprint?
function onRowdataDelete(rowid, gname, gid) {
if (confirm("-----------------------------------------\r\n 用戶組ID:\"" + gid + "\"\r\n 用戶組名稱:\"" + gname + "\"\r\n-----------------------------------------\r\n------- 確認要將以上用戶組刪除嗎? -------" )) {
document.getElementById("delid" ).value = rowid;
document.getElementById("delgid" ).value = gid;
document.getElementById("del_btn" ).click ();
}
else {
}
}
function onRowdataDelete(rowid, gname, gid) {
if (confirm("-----------------------------------------\r\n 用戶組ID:\"" + gid + "\"\r\n 用戶組名稱:\"" + gname + "\"\r\n-----------------------------------------\r\n------- 確認要將以上用戶組刪除嗎? -------" )) {
document.getElementById("delid" ).value = rowid;
document.getElementById("delgid" ).value = gid;
document.getElementById("del_btn" ).click ();
}
else {
}
}
3. 前臺*.aspx 中增加如下隱藏定義:
view plaincopy to clipboardprint?
< asp:HiddenField ID ="delid" runat ="server" />
< asp:HiddenField ID ="delgid" runat ="server" />
< asp:Button ID ="del_btn" style ="display : none ;" runat ="server" OnClick ="delbtn_click" />
< asp:HiddenField ID ="delid" runat ="server" />
< asp:HiddenField ID ="delgid" runat ="server" />
< asp:Button ID ="del_btn" style ="display : none ;" runat ="server" OnClick ="delbtn_click" />
4. 后臺*.cs 中相應的onclick 事件:
view plaincopy to clipboardprint?
protected void delbtn_click(object sender, EventArgs e){
//可以直接獲取刪除行的相關參數:delid.Value, delgid.Value
//在此執行你的業務邏輯,比如這里是刪除的方法函數
}
protected void delbtn_click(object sender, EventArgs e){
//可以直接獲取刪除行的相關參數:delid.Value, delgid.Value
//在此執行你的業務邏輯,比如這里是刪除的方法函數
}
5. 簡要注解:
在刪除的js方法被激發后會先執行confirm,確認后會將傳入的幾個參數分別賦給*.aspx前臺頁面中的相應隱藏值,便于后臺取值。最后出發*.aspx頁面中隱藏的button單擊事件,進而開始調用其后臺的單擊事件,執行后臺的方法函數。
(注意*.aspx中Button在隱藏是不能使用visible=false,這樣會使得 getElementById時無法找到此控件 )
轉載于:https://www..com/songjianpin/archive/2012/04/24/2468759.html
總結
以上是生活随笔為你收集整理的前台为html后台是asp在vs2012中建立什么,Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 访问网络计算机的盘符,win7系统下如何
- 下一篇: iphone计算机快捷键,苹果电脑快捷键