JavaScript-ActiveXObject

 ------------出现“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>

posted @ 2010-10-09 11:16  Microbar  阅读(766)  评论(0编辑  收藏  举报