//Silverlight 入门
13576911983
//BLL 是业务逻辑层 Business Logic Layer
//DAL 是数据访问层 Data Access Layer
//顺序从前到后,
function txtFocus() /*当文本框获得focus时发生 */
{
if(document.Form1.Txtphone.value=="格式:07918080888")
{
document.Form1.Txtphone.value="";
}
}
function untxtFocus() /*当文本框失去focus时发生 */
{
if(document.Form1.Txtphone.value=="")
{
document.Form1.Txtphone.value="格式:07918080888";
}
}
function PhoneCheck(s) //验证电话
{ var str=s;
var reg=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
if(reg.test(str)!=true)
{
window.alert("电话号码输入有误!");
return false;
}
}
function isEmpty() //验证不能为空
{
if(document.Form1.txtname.value=="")
{
window.alert("经理不能为空!");
Form1.txtmanagername.focus();
return false;
}
//验证电话
var str=document.Form1.Txtphone.value;
var reg=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
if(reg.test(str)!=true)
{
window.alert("电话号码输入有误!");
return false;
}
οnkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;"
-------------------------------------------------------------------
对于服务器控件只能在后台文件中添加客房端属性事件
如:在对TxtBox控件添加属性onblur事件
this.Txtdepartphone.Attributes["onfocus"] = "javascript:txtFocus();";
this.Txtdepartphone.Attributes["onblur"] = "javascript:untxtFocus();";
------------------------------------------------------------------------
<asp:TemplateField HeaderText="自增列" FooterText="自增列">
<ItemTemplate>
<%# (Container.DataItemIndex+1).ToString()%>
</ItemTemplate>
</asp:TemplateField>
-------------------------------------------------------------------------------
ajax
<script language=javascript>
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function checkUserIsExist()
{
createXMLHttpRequest();
var url= "Handler.ashx?userName="+document.getElementById("TextBox1").value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=showResult;
xmlHttp.send(null);
}
function showResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
document.getElementById("result").value=xmlHttp.responseText;
}
}
}
</script>
---------------------------------------------------------------------------
手动分页
protected void PageCustom(DataSet ds)
{
this.LblRecordCount.Text = "共" + ds.Tables[0].Rows.Count.ToString() + "条";
this.LblPageCount.Text = "共" + GridView1.PageCount.ToString() + "页";
this.LblCurrentIndex.Text = "第" + (GridView1.PageIndex + 1).ToString() + "页";
//记录当前页的索引 改变索引值达到分页效果
this.HiddenField1.Value = GridView1.PageIndex.ToString();
if (GridView1.PageIndex == 0)
{
lbnprev.Enabled = false;
}
else
{
lbnprev.Enabled = true;
}
if (GridView1.PageIndex == GridView1.PageCount - 1)
{
lbnnext.Enabled = false;
}
else
{
lbnnext.Enabled = true;
}
if (GridView1.Rows.Count == 0)
{
lbnfirst.Visible = false;
lbnlast.Visible = false;
lbnnext.Visible = false;
lbnprev.Visible = false;
LblCurrentIndex.Visible = false;
LblPageCount.Visible = false;
LblRecordCount.Visible = false;
}
else
{
lbnfirst.Visible = true;
lbnlast.Visible = true;
lbnnext.Visible = true;
lbnprev.Visible = true;
LblCurrentIndex.Visible = true;
LblPageCount.Visible = true;
LblRecordCount.Visible = true;
}
}
//对于有多个数据源可以session["flag"]判断数据源,主要用于多查询。
protected void lbnnext_Click(object sender, EventArgs e)
{
//下一页
GridView1.PageIndex = Convert.ToInt32(HiddenField1.Value) + 1;
switch (Session["sign"].ToString())
{
case "1": QueryDepartment();
break;
case "2": QueryPerson();
break;
}
}
protected void lbnfirst_Click(object sender, EventArgs e)
{
//第一页
GridView1.PageIndex = 0;
switch (Session["sign"].ToString())
{
case "1": QueryDepartment();
break;
case "2": QueryPerson();
break;
}
}
protected void lbnprev_Click(object sender, EventArgs e)
{
//前一页
GridView1.PageIndex = Convert.ToInt32(HiddenField1.Value) - 1;
switch (Session["sign"].ToString())
{
case "1": QueryDepartment();
break;
case "2": QueryPerson();
break;
}
}
protected void lbnlast_Click(object sender, EventArgs e)
{
//最后一页
GridView1.PageIndex = GridView1.PageCount - 1;
switch (Session["sign"].ToString())
{
case "1": QueryDepartment();
break;
case "2": QueryPerson();
break;
}
}
------------------------------------------------------------------------------
---------------------------------------------------------------------
web.sitmap书写规则
<siteMapNode title="定饭系统">
<siteMapNode title="公司管理">
<siteMapNode url="~/companyconfig/addinfo.aspx" title="信息管理" description="" />
<siteMapNode url="~/companyconfig/orderquery.aspx" title="定单查询" description="" />
</siteMapNode>
</siteMapNode>
-----------------------------------------------------------------------
javascript 弹出窗口:
<script language='javascript'>
var login;
login=window.open('','正在载入中','toolbar=no,menubar=no,titlebar=no,directories=no,resizable=no,status=no');
if (login!=null){
if (login.opener==null){login.opener=self}
var window_width=screen.AvailWidth;
var window_htight=screen.AvailHeight;
login.moveTo((screen.AvailWidth-window_width)/2,(screen.AvailHeight-window_htight)/2);
login.resizeTo(window_width,window_htight);
login.outerWidth=window_width;
login.outerHeight=window_htight;
login.location.href='Main.aspx?id='+Math.random()*1000;
window.opener=null
window.close();
}
</script>
-------------------------------------------------------------------
//response.write 弹出窗口
Response.Write("<script>window.open ('main.aspx','正在载入中','toolbar=no,menubar=no,titlebar=no,scrollbar=yes,directories=no,resizable=yes,status=no,width=1024,height=1024,top=0,left=0')</script>");
//写在一行!
------------------------------------------------------------------------------
//写在pageload() 在委托中进行编程。目的可以达到触发一个事件达到两种事件发生。
Button1.Click += delegate(object myObject, EventArgs myEvent)
{
Label1.Text = "成功!";
//同时也可以是函数!
};
------------------------------------------------------------------------------------
javascript 怎么得到服务控件的值?
对于文本框:var info=document.getElementById('txtId').value;
对于label控件:document.getElementById('lable').innerHTML=rValue;
对于listbox : info=document.getElementById('ListBox1').options[document.getElementById('ListBox1').selectedIndex].value; //此为值。
info=document.getElementById('ListBox1').options[document.getElementById('ListBox1').selectedIndex].text; //此为显示的值
同理对于dropdownlist: 只改ID值
------------------------------------------------------------------
在JAVASCRIPT 对dropdownlist操作:
1 删除:
for(i=document.getElementById('ddldepart').length;i>=0;i--)
{
document.getElementById('ddldepart').options.remove(i);
}
2 添加:
var arrData=rValue.split(","); rValue是个字符串"北京@0,天津@1,上海@3"
for (var i=0;i<arrData.length;i++)
{
var data=arrData[i].split("@");
var newOption=document.createElement("OPTION");
newOption.text=data[0];
newOption.value=data[1];
document.getElementById('ddlTest').options.add(newOption);
}
-----------------------------------------------------------------------------------
//相当AJAX,微软的无刷新技术。 验证数据是否存在
<script language=javascript>
function CallServer() //提高数据给服务器,得到值给处理函数(ReceiveServerData)
{ //客户端在文本框中触发事件:onkeypress
var info=document.form1.Text1.value;
//接受服务端的数据,再把值传给处理函数返回到页面。
<%=ClientScript.GetCallbackEventReference(this,"info","ReceiveServerData",null) %>
}
function ReceiveServerData(rValue)
{
display.innerHTML=rValue;
}
</script>
后台的写法:
首先:由page继承System.Web.UI.ICallbackEventHandler
方法用逗号隔开多个接口。
private string CallBackValue = ""; //公共变量。
//得到由客户端传过来的值。
protected void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
this.CallBackValue = eventArgument;
//在这里可以与数据库交互。
如:
if (Membership.ValidateUser(eventArgument, "admin"))
{
this.CallBackValue = eventArgument +",存在";
}
else
{
this.CallBackValue = eventArgument + "不存在";
}
}
//结果传给客户端。
protected string ICallbackEventHandler.GetCallbackResult()
{
return CallBackValue;
}
---------------------------------------------------------------------
无刷新多联动.
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
SqlConnection conn = new SqlConnection("server=.;database=hotel;uid=sa; pwd=;");
conn.Open();
SqlCommand com = new SqlCommand("select * from t_department where companyid='"+eventArgument+"' ", conn);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
if (CallBackValue.Equals(string.Empty))
{
CallBackValue = dr["departmentid"] + "@" + dr["departmentname"].ToString();
}
else
{
CallBackValue = CallBackValue + "," + dr["departmentid"] + "@" + dr["departmentname"].ToString();
}
}
}
前台:
function ReceiveServerData(rValue)
{
//移去二级ddl控件的Item
for(i=document.getElementById('ddldepart').length;i>=0;i--)
{
document.getElementById('ddldepart').options.remove(i);
}
var arrData=rValue.split(",");
for (var i=0;i<arrData.length;i++)
{
var data=arrData[i].split("@");
var newOption=document.createElement("OPTION");
newOption.text=data[1];
newOption.value=data[0];
document.getElementById('ddldepart').options.add(newOption);
}
}
------------------------------------------------
buttoncss
---绿色按键
<style>
.btn { BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7b9ebd 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#cecfde); BORDER-LEFT: #7b9ebd 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7b9ebd 1px solid }
.btn1_mouseout { BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#B3D997); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid }
.btn1_mouseover { BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#CAE4B6); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid }
</style>
使用:
<body>
<p class=btn1_mouseout οnmοuseοver="this.className='btn1_mouseover'"
οnmοuseοut="this.className='btn1_mouseout'" >
<body>
-------------------------------------------------------------------------
对DataTable的操作
对表的结构与数据copy
DataTable dt=oldTable.copy();
增加数据
for (int i=0;i<oldTable.Items.Count;i++)
{
{
DataRow dr=dt.NewRow();
for(int j=0;j<dt.Columns.Count;j++)
{
dr[j]=dt.Rows[i][j];
}
dt1.Rows.Add(dr);
}
}
----------------------------------------------------------------------
<%# DataBinder.Eval(Container.DataItem,"iscompulsory" ).ToString()=="False"?"否":"是" %>'
iscompulsory is bit 型
------------------------------------------------------------------------------
局部刷新验证码:
function getimgcode()
{
var getimagecode = document.getElementById("flash");
getimagecode.src = "ValidateCode.aspx?"+ Math.random();
}
<IMG id="flash" alt="刷新" src="ValidateCode.aspx" >
<A href="javascript:getimgcode()">刷新验证码</A>
---后面加了一个随机参数,这样每次的链接地址都不一样,从而达到更新的目的。
---------------------------------------------------------------------------
页面跳转:
if(Session["LoginName"]==null)
{
Response.Redirect("login.aspx?returnUrl="+this.Request.RawUrl);
}
this.Request.RawUrl----------本身Url
接收页面:
Response.Redirect(Request.QueryString["returnUrl"]);
--------------------------------------------------------------------------------------
数据库设计:
数据库中关键字不要取,取就在关键字上加上 [desc](如)