1.有些时候IIS启动不了,很有可能是因为80端口被占用,一般的,Skype启动后就占用80的端口(请注意这一点)
2.如果要把一个控件放在master Page中,请注意不要把控件拉到ContentPlaceHolder里面,因为它用于aspx 页面增加控件的容器,如果拉多个就可实现一部分是aspx页面的内容一部分是master Page的内容
(其实打开一个新建的默认的master Page 里面就有两个ContentPlaceHolder ,一个是在<head></head>区,用来加style 或者js的)
3.一个页面要访问它的master Page 页的控件要用这种方法:
Control test = this.Page.Master.FindControl("Button1"); / this.Master….
一个页面要访问usercontrol 里的控件可以用这种方法:(假设此用户控件拉到页面上的ID: UCsearch)
Control test = this.UCsearch.FindControl("TextBox1");
4.让一个按钮具有异步性(即不刷新页面),可以有下面的两种方法
- 拉一个UpdatePanel,让AsyncPostBackTrigger的控件ID为那个按钮
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click"> </asp:AsyncPostBackTrigger> </Triggers> </asp:UpdatePanel>
如上面代码显示,也可以在updatPanel属性Trigger集中指定哪个控件及事件
- 不用按updatePanel 直接拉个ScriptManager
protected void Page_Load(object sender, EventArgs e) { this.ScriptManager1.RegisterAsyncPostBackControl(this.Button1); }
5.让一个/多个控件发生刷新而又不让整个页面发生刷新(如DataGrid进行重新绑定)的方法
在页面上放一个ScriptManager 再拉一个updatePanel ,把控件放入到这个updatePanel里去,当做完操作后(如DataGrid的数据重新绑定后),
可以直接用this.UpdatePanel1.Update()去更新,请注意的是,这里面把updatePanel 的UpdateMode 改为Conditional而不是always 不然会报错
6.有一上面的两咱思路,我就可以把按钮和DataGrid放在不同的区域,如把Button放masterpage里,dataGrid放在Page里或者userControl里
7.一般的,在C#中调用JS代码有两种方法://my_alert是一个JS函数
- Response.Write("<script language =javascript> my_alert('OK') </script>"); 这种方法就是直接执行而不等待页面加载完成
- this.Page.RegisterStartupScript("any", "<script language =javascript> my_alert('OK') </script>");这种方法等待页面加载完成再执行
- 在一个控件被注册或指定为异步调用时(通过UpdatePanel指定异步控件的方式) , 那么当这个控件所触发事件/订阅者中要执行指定的JS函数,那么请用
UpdatePanel up = (UpdatePanel)cl;// 为指定为异步的那个UpdatePanel
ScriptManager.RegisterStartupScript(up, this.GetType(), "anyString", "alert(‘OK’)", true);
8.在程序中用异常代替字符串来处理错误
protected Exception createException(string _message) { Exception myEx = new Exception(_message); //用自己的消息去替换异常消息 return myEx; } //使用方法: try { sqlCon.Close(); } catch (Exception e ) { throw (createException("自己的处理" + e.Message)); }
浙公网安备 33010602011771号