一,在後置代碼中動態產生JavaScript代碼的函數:
以前在尾碼代碼中產生javascript代碼一直是使用Response.Write來產生,今天看到兩個函數,可以讓用戶端產生Javascript代碼,一個是:RegisterClientScriptBlock,另一個是:RegisterStartupScript,兩者不同之處在於產生的位置不同,他們都在<Form>與</Form>塊之間,但第一個在<Form>之後,第二個是在</Form>之前。兩個函數可以配合IsClientScriptBlockRegistered與IsStartupScriptRegistered函數來查看代碼塊有沒有被註冊使用。例:
private void Page_Load(object sender, System.EventArgs e)
{
StringBuilder scriptstring = new StringBuilder();
scriptstring.Append("<script language=javascript>");
scriptstring.Append("function Setfirstfocus(){");
scriptstring.Append("document.all.name.focus();}");
scriptstring.Append("</script>");
string js = scriptstring.ToString();
Page.RegisterClientScriptBlock("Setfirstfocus", js);
//Page.RegisterStartupScript("Setfirstfocus",js);
}
二,關於ViewState的一些知識點:
可以詳見http://www.microsoft.com/china/msdn/archives/library/dnaspnet/html/Asp11222001.asp
三,在用戶端獲得按鍵的javascript代碼:
<script language="javascript">
function keyDown()
{
var keycode=event.keyCode;
var keychar=String.fromCharCode(keycode);
alert('ASCII='+keycode+'\nKeyChar='+keychar);
}
document.onkeydown=keyDown;
</script>
四,用Enter替代Table健的Javascript代碼: <script language="javascript">
function keyDown()
{
var keycode=event.keyCode;
var keyChar=String.fromCharCode(keycode);
if(keycode==13)
event.keyCode=9;
};
document.onkeydown=keyDown;
</script>
五,動態建立控制項:
Label lbl = new Label();
lbl.Text = "Label" + (i).ToString();
lbl.ID = "Label" + (i).ToString();
Panel1.Controls.Add(lbl);
Panel1.Controls.Add(new LiteralControl("<br>"));
LiteralControl可以根據字串來產生頁面的html代碼
六,動態更改Web控制項的屬性:
可以像給控制項添加script事件一樣為其添加樣式屬性,如:
Button1.Attributes.Add("style","BACKGROUND-COLOR: #008888");
七、在頁面的Javscript代碼中清加.net代碼
如,aspx頁面有以下控制項
<asp:Literal ID="Literal1" Text="abc" runat="server"></asp:Literal>
我想在下面的JS代碼中獲得Literal1.Text文字,通過以下方式獲得:
<script language="javascript">
alert("<%=Literal1.Text %>");
</script>