------------出现“automation服务器不能创建对象”问题------------
a.主要是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll
b.要修改"本地Intranet"内“对没有标记为安全的ActiveX控件进行初始化和脚本运行”这一项设置为“启用”就可以了
------------js获取页面加载时间-----------
var beginDate = new Date();
function doHidden() {
//document.getElementById("dvFloat").style.display = "none";
var endDate = new Date();
var timeSpan = endDate-beginDate;
alert("页面加载耗时:"+timeSpan+"毫秒");
}
if (document.readyState == "complete") {
doHidden();
}
else {
document.onreadystatechange = function() {
if (document.readyState == "complete") {
doHidden();
}
}
}
------------DataRow复制一行到另一个DataTable-----------
法1:
DataTable ntb = tb.Clone();
foreach (DataRow row in tb.Rows)
{
ntb.ImportRow(row);
}
法2:
DataTable tb = ds.Tables[0];
DataTable tbReturn = tb.Clone();
foreach (DataRow row in tb.Rows)
{
if (row["EmployeeName"].ToString().Contains(uName))
{
tbReturn.Rows.Add(row.ItemArray);
}
}
------------不缓存TextBox-----------
<input name="txbBill" type="text" autocomplete="off" />
<asp:TextBox AutoCompleteType="Disabled" ></asp:TextBox>
------------js日期--------------------
字符串转日期格式 yyyy/MM/dd HH:mm:ss
var _Date = document.getElementById("hfDate").value.replace(/\-/g,"/");//要把-替换成/
var yuDate = new Date(_Date);
new Date()//为当前时间
用getTime()比较2个日期大小(毫秒数)
-----------Table很细CSS-----------
<table cellspacing="0" width="100%" cellpadding="5" style="BORDER-COLLAPSE: collapse" border="1" bordercolor="#c4c9fd">
-----------强制不换行-----------
style='word-break:keep-all;'
div居中:margin:auto;width:500;
-----------增强型验证提示-----------
js============>:
function CheckClientValidate() {
if (Page_ClientValidate()){
alert('验证成功');
return true;
}
return false;
}
aspx============>:
OnClientClick="return CheckClientValidate();"
c#============>:
using Winsteps.Validator;
//加入验证提示框
WinVal WinValInstance = new WinVal();
//WinValInstance.ValStyle = "buttompoptip";//显示样式,如:rightpoptip、toppoptip、buttompoptip
WinValInstance.SetValidator();
-----------验证控件与JS结合------------
OnClientClick="return CheckClientValidate();"
function CheckClientValidate() {
if (Page_ClientValidate()) {
return confirm('确定数据无误吗?');
}
return false;
}
-----------GridView绑定行号------------
<%#DataBinder.Eval(Container,"RowIndex") %>
-----------日志语句测试------------
KLog.Write(key.ToString(), sb.ToString(), @"E:\ZhongCJ\公司文件\客信通\SPA\KXT.Project\KXT.WebSite\App_Data\Logfiles\text.log");
-----------弹出模式对话框------------
var rand = Math.random() * 100;
window.showModalDialog("../Finance/Charge.aspx?mid=" + mid + "&rand=" + rand, window, "dialogWidth=800px;dialogHeight=500px;status:no;resizable=no;scroll:no");
<base target="_self">
<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="<%=KXT.KRequest.GetUrl()%>" style="display:none">reload...</a>
-----------日期控件------------
<script language="javascript" type="text/javascript" src="<%=KXT.KRequest.SitePath%>CalendarDatePicker/WdatePicker.js"></script>
<asp:TextBox ID="txbStartDate" runat="server" class="Wdate" EnableTheming="false" onFocus="WdatePicker({skin:'whyGreen',readOnly:true,dateFmt:'yyyy-MM-dd'})"></asp:TextBox>
-----------下拉选项选中-----------
ListItem _item = ddlType.Items.FindByValue(stype.ToString());
if (_item != null)
{
ddlType.SelectedValue = _item.Value;
}
-------------Ajax--------------
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/ajax.js"></script>
ajurl = "<%=P960.KRequest.SitePath %>" + "qdxj/OperationAdmin/AjaxGetData.aspx?cmd=1";
var querystr = "&bid=" + obj;
var ajax = new Ajax();
ajax.method = "POST";
ajax.url = ajurl; //alert(ajurl);
ajax.queryString = querystr;
ajax.callback = function (req) {
$("td_cell").innerHTML = req.responseText;
};
ajax.send();
==========================B=============================
var ajax = new Ajax();
ajax.method = "POST";
ajax.url = "BProcess.aspx?ajax=1&cmd=getpointstate";
ajax.queryString = "area="+<%=area%>;
ajax.callback = function(req){
var newCount = parseInt(AjaxResponse(req).status);
if(curCount!=newCount)
{
location.reload();
}
else
{
var ajmsg=AjaxResponse(req).message;
var newPoint=ajmsg.split("&");
for(i=0;i<newPoint.length;i++)
{
pdata=newPoint[i].split(",");
tpoint=$("vimg_"+pdata[0]);
if(tpoint)
{
tpoint.src='image/mapicon/'+pdata[1];
}
}
}
};
ajax.send();
--------------加入Flash------------
法一:
<embed src="zy/defBG.swf" width="700" height="500" wmode="transparent">
法二:
<script type="text/javascript">
var w = document.body.offsetWidth;
var h = document.body.offsetHeight;
var htm = "<object id='dvFloat' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'";
htm += " width='" + w + "'";
htm += " height='" + h + "'>";
htm += "<param name='movie' value='image/load.swf' />";
htm += "</object>";
document.write(htm);
</script>
--------------使用ObjectDatasource------------
GridView和DetailView更新有效需设置:DataKeyNames
-----------应用皮肤-------------
全局设置:<%@ Page Theme="default2" %>
让控件不应用Theme:Label的EnableTheming属性为false
不同的控件显示不同的风格:只需设置控件的SkinID属性
使用<%@ Page StyleSheetTheme="..." %>应用theme就不会覆盖你在aspx文件中写的属性style
控件应用style属性的顺序如下:
a、StyleSheetTheme引用的风格
b、代码设定的控件属性(覆盖StyleSheetTheme)
c、Theme引用的风格(覆盖前面2个)
theme中包含CSS:
theme中也可以使用.css文件,当你把.css文件放在1个theme目录下后,在用到了这个theme的页面中自动会应用你的.css的
三、后台代码轻松为网站换府肤
前面讲的都是在aspx文件或web.config中应用theme,而在blog这样的每个用户都有不同的skin的网站中用上面的方法来实现换skin显然是不方便的。
下面就介绍怎么在后台代码中动态的引用theme来解决上面的情况,theme必须在page被请求的最早期就应用上,所以我们必须在Page_PreInit事件中写代码,代码很简单,就1句:
Page.Theme = "...";
这里我们只要从数据库中去读取每个用户设置的不同theme名就可以轻松实现每个用户都有不同的skin了
---------------------------------GridView---------------------------------
在我们使用GridView的过程中,经常会遇到这样对问题,我们选择某一行进行编辑,或选择某一行删除或者.......时,我们需要获取当前行的某些信息,尤其是当前行的主键信息,主键信息一般不显示在页面,此时我们有三种方法来处理。
第一种是使用DataKeyNames ,这里只重点介绍这个。
第二种是使用按钮的CommandArgument属性邦定需要的信息。
第三种是最古老最通用的方法使用隐藏的方法显示。
第一种方法:使用DataKeyNames,DataKeyNames可邦定一列,也可邦定多列
前台:DataKeyNames="FID" 绑定一个值
后台:GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
前台:DataKeyNames="FID,FName" 绑定两个值
后台:GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString();
后台:GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString();
或者
后台:GridView1.DataKeys[e.Row.RowIndex].Values["FID"].ToString();
后台:GridView1.DataKeys[e.Row.RowIndex].Values["FName"].ToString();
-------------测试程序运行时间---------------------
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
Response.Write(sw.ElapsedMilliseconds);
-----------------自定义面板-----------------
<script type="text/javascript">
function getPos(e) {
var x = e.offsetLeft;
var y = e.offsetTop;
while (e = e.offsetParent) {
x += e.offsetLeft;
y += e.offsetTop;
}
return { "x": x, "y": y };
}
function ShowPanel(el,objId) {
var obj = document.getElementById(objId);
obj.style.display = "block";
var xy = getPos(el);
obj.style.top = xy.y + el.offsetHeight;
obj.style.left = xy.x;
}
</script>
<style type="text/css">
.pnlnum
{
display: none;
position: absolute;
left: 0px;
top: 0px;
width: 600px;
padding: 1px;
background-color: #FAFAFA;
border: 1px solid #CCCCCC;
}
</style>
<input type="text" onclick="ShowPanel(this,'pnlNum')" />
<div id="pnlNum" onmousemove="this.style.display='block'" onmouseout="this.style.display='none'" class="pnlnum">
Pnl Content
</div>