Web开发学习点滴(持续更新)


1:Response.Write()后会在页面的第一行写入脚本,在<HTML>前执行脚本会影响CSS。解决方法是使用

 ClientScript.RegisterStartupScript(GetType(),"hello", "<script   language=javascript>alert('ok')</script>");

此方法将脚本写入</form>之前,不会影响CSS。


附:其他向客户端写入脚本的方法
方法 说明
RegisterClientScriptBlock 向页的顶部添加一个脚本块。以字符串形式创建脚本,然后将其传递给方法,方法再将脚本添加到页中。可以使用此方法将任何脚本插入到页中。请注意,脚本可能在所有元素完成之前呈现到页中;因此,您可能无法从脚本中引用页上的所有元素。
RegisterClientScriptInclude 与 RegisterClientScriptBlock 方法类似,但此方法将添加引用外部 .js 文件的脚本块。包含文件在任何其他动态添加的脚本之前添加;因此,您可能无法引用页上的某些元素。
RegisterStartupScript 向页中添加一个脚本块,该脚本块在页完成加载后引发页的 onload 事件之前执行。该脚本通常不创建为事件处理程序或函数;它通常只包含要执行一次的语句。
RegisterOnSubmitStatement 添加响应页的 onsubmit 事件而执行的脚本。该脚本在提交页之前执行,允许您取消提交



2. 在Aspx页面上可以使用<%$AppSettings: settingKey%>获得配置文件appSettings配置节中指定key的值

3.  当将textbox控件的ReadOnly属性设置为true时,如果在客户端用js脚本改变了这个textbox的值,提交之后在服务器端是得不到改动后的值的,可以通过Request.Form[textbox.ClientID]获得改动後的值

4.  在.Net1.0中只有一个html input的上传文件控件,而在2.0中有了一个WebControl:FileUpload,在验证用户时候选择文件并上传时,可以通过它的HasFile属性来判断,而不必这样来判断FileUpload1.PostFile != null && FileUpload1.PostFile.ContentLength > 0。

5.  可以使用$符号轻松的使用FindControl方法找到控件

<form id="form1" runat="server" DefaultFocus="formVw$txtName">
    
<div>
        
<asp:FormView ID="formVw" runat="server">
            
<ItemTemplate>
                Name: 
                
<asp:TextBox ID="txtName" runat="server" 
                    Text
='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
            
</ItemTemplate>
        
</asp:FormView>
    
</div>
</form>

在上面的例子中使用form的DefaultFocus属性指定页面载入时焦点所在的控件,使用$符号就可以轻松的定位txtName

也可以使用以下代码来轻松的找到控件

TextBox tb = this.FindControl("form1$formVw$txtName"as TextBox;
if (tb != null)
{
    
//Access TextBox control
}




 

原文地址:https://www.cnblogs.com/Magicsky/p/785959.html