ASP.Net一些知识点(关于.net与JS如何交互)

一,在后置代码中动态生成JavaScript代码的函数:
       以前在后缀代码中生成javascript代码一直是使用Response.Write来生成,今天看到两个函数,可以让客户端生成Javascript代码,一个是:RegisterClientScriptBlock,另一个是:RegisterStartupScript,两者不同之处在于生成的位置不同,他们都在<Form>与</Form>块之间,但第一个在<Form>之后,第二个是在</Form>之前。两个函数可以配合IsClientScriptBlockRegisteredIsStartupScriptRegistered函数来查看代码块有没有被注册使用。例:

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>
posted @ 2005-05-08 09:22  shipfi  阅读(1277)  评论(0编辑  收藏  举报