欢迎来到助燃的Blog!

对你有益的氧气,或者……对你有害的氯气
 
 
昵称:助燃
园龄:5年
粉丝:1
关注:0

搜索

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签

我的标签

  • Access(1)
  • Jet(1)
  • SQL(1)
  • compute by(1)
  • 模拟(1)
  • 分类(1)
  • 汇总(1)
  • mysql(1)
  • limit(1)
  • 鼠标(1)
  • 更多

随笔分类

  • Asp.net+AJAX(6) (rss)
  • 我的程序人生(1) (rss)

随笔档案

  • 2010年9月 (1)
  • 2010年8月 (1)
  • 2009年4月 (1)
  • 2008年7月 (1)
  • 2007年9月 (1)
  • 2007年8月 (1)
  • 2007年7月 (2)
  • 2007年1月 (2)
  • 2006年12月 (1)

最新评论

阅读排行榜

评论排行榜

推荐排行榜


Powered by: 博客园
模板提供:沪江博客
博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅订阅 | 管理

2010年9月1日

如何一次性清理掉gmail中[已忽略]的邮件?

今日gmail空间使用率达95%(总7493mb),提示我购买空间了。

 想了个办法把[已忽略]的邮件一次性清除,如下:

 

创建一个过滤器,包含字词里填 label:muted

不包含里根据需要填写

 点下一步时会弹出警告,提示该过滤器可能无法作用于新收到的邮件,直接确定。 

勾选"删除邮件"和“另外,将过滤器应用于以下 xx个会话” ,创建过滤器。

 

记得一键清空已删除邮件和垃圾邮件,空间马上多出来了。

posted @ 2010-09-01 15:13 助燃 阅读(314) 评论(0) 编辑
 

2010年8月21日

解决:鼠标滚轮快速向上滚动会使网页后退

[症状]

鼠标滚轮快速向上滚动,网页后退。更换浏览器问题依旧,于是排除浏览器设置问题。在资源管理器里用同样手法试验,发现其快速后退后又前进,类似于刷新了一次。

 

怀疑是操作系统设置问题,检查控制面板中滚轮设置项,无异样。

 

查google,大多数回答为鼠标短路、需要更换鼠标。

 

[解决办法] 

 

查看ps2口发现应该插鼠标的ps2口插着键盘,而鼠标通过usb/ps2转接口连入电脑。交换后问题解决。之前键盘倒是一直无异常,故障原因相当隐蔽阿。

posted @ 2010-08-21 17:05 助燃 阅读(1073) 评论(0) 编辑
 

2009年4月16日

mysql limit 用法详解(修正版)

在google中输入"mysql limit",得到的前两条记录内容是雷同的,其中有这样一段

“//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: 

mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. ”

这段其实是在误人子弟,来看看mysql的官方文档:http://dev.mysql.com/doc/refman/6.0/en/select.html

内容摘录如下:


The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be non-negative integer constants (except when using prepared statements).

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter. This statement retrieves all rows from the 96th row to the last:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

With one argument, the value specifies the number of rows to return from the beginning of the result set:

SELECT * FROM tbl LIMIT 5;     # Retrieve first 5 rows

In other words, LIMIT row_count is equivalent to LIMIT 0, row_count.

 

posted @ 2009-04-16 09:57 助燃 阅读(1800) 评论(2) 编辑
 

2008年7月25日

为Access模拟compute by分类汇总功能

最近用Access数据库做一个微型应用,需要实现类似SQL Server里compute by语法的效果,网上google了一下,得知jet不支持,只好自己用.net模拟一个了,暂时只支持根据一个字段sum另一个字段,即sum(fieldA) compute by (filedB)。注意fieldA必须是decimal类型,如果是double类型恐怕需要修改源代码。

 

 1/**//// <summary>
 2        /// 模拟SQL SERVER中的分类汇总ComputeBy语句
 3        /// </summary>
 4        /// <param name="sourceTable">源数据</param>
 5        /// <param name="sumField">求和字段</param>
 6        /// <param name="byField">分类字段</param>
 7        /// <param name="needTotolSum">是否需要汇总合计</param>
 8        /// <returns>目标数据源,重新绑定控件的DataSource属性后生效</returns>

 9        public static DataTable ComputeBy(DataTable sourceTable, string sumField, string byField, bool needTotolSum)
10        {
11            int rowCount = sourceTable.Rows.Count;
12            if (rowCount == 0) return sourceTable;//数据量为0,不执行计算分类汇总
13            DataTable destTable = sourceTable.Copy();//深拷贝数据源
14            int insertTimes = 0;//插入次数,用于记录数据源与其拷贝之间的相对偏移量
15            int i = 0;
16            int j = 0;
17            decimal sum = 0;//分类汇总
18            decimal totolSum = 0;//合计
19            DataRow dr;
20            while (i < rowCount)
21            {
22                sum += (decimal)sourceTable.Rows[i][sumField];
23                j = i + 1;
24                if (j < rowCount && sourceTable.Rows[i][byField].ToString() != sourceTable.Rows[j][byField].ToString())
25                {
26                    dr = destTable.NewRow();
27                    dr[sumField] = sum;
28                    totolSum += sum;
29                    sum = 0;
30                    destTable.Rows.InsertAt(dr, j + insertTimes);//插入分类汇总
31                    insertTimes++;
32                }

33                i++;
34            }

35            dr = destTable.NewRow();
36            dr[sumField] = sum;
37            destTable.Rows.InsertAt(dr, j + insertTimes);
38            //分类汇总插入完毕,插入合计
39            if (needTotolSum)
40            {
41                totolSum += sum;
42                dr = destTable.NewRow();
43                dr[sumField] = totolSum;
44                destTable.Rows.Add(dr);
45            }

46            return destTable;
47        }
posted @ 2008-07-25 01:06 助燃 阅读(556) 评论(0) 编辑
 

2007年9月6日

让Validation Callout Extender与Custom Validator协作
官方的说明中提到ValidatorCalloutExtender并不支持CustomValidator的服务器端验证,而我又迫切需要这个功能,于是使用google大法,找到了这篇名为《Validating Server Side using the Validation Callout Extender with the Custom Validator》 的文章,它提到了可以通过让Page类实现System.Web.UI.ICallbackEventHandler接口从而使页面本身支持异步回调,接着指定CustomValidator的ClientValidationFunction属性,把验证事件关联到一个客户端的js函数,在该函数中通过异步回调获得服务器端验证结果后返回,那么对于ValidatorCalloutExtender而言,没有与服务器端通信,只是从js中获得了一个验证结果,效果自然是大大的好。

不过,这个方法太烦杂了,上次看了老赵的这篇 分清ASP.NET AJAX中的Extender和Behavior模型 当时就受到了启发,在服务器端验证事件中,若验证失败,则注册一个启动脚本,内容是调用ValidatorCalloutExtender的Behavior中显示气泡提示的方法,那么当这个启动脚本被执行不就大功告成了嘛!

说干就干,首先摸索了一下那个弹出气泡的方法名,居然就是show(),要是不对恐怕还要到官方文档里面查,接着在页面中添加一个RegularExpressionValidator,因为如果ValidatorCalloutExtender直接关联带有服务器端验证的CustomValidator会报错,所以需要一个替代品,例如:
<asp:RegularExpressionValidator ID="rev" runat="server" ErrorMessage="用户名密码错误!" 
                    ControlToValidate
="Password" Display="None" ValidationExpression="\w*|\W*"></asp:RegularExpressionValidator>  
其中,ErrorMessage即弹出气泡中的提示文字,若提示内容会由于服务器端验证结果动态变化,则可以在后台代码中动态改变该属性从而达到目的;ControlToValidate为弹出气泡指向的文本框;Display设为none用于隐藏这个替代品;正则表达式设为“\w*|\W*”表示任意字符都能通过验证,这样就不会出现客户端正则表达式验证没通过而激活气泡提示的情况了。接着添加一个ValidatorCalloutExtender,注意要指明BehaviorID属性
                <cc1:ValidatorCalloutExtender ID="vceLogin" runat="server" TargetControlID="rev" BehaviorID="vceLoginBehavior">
                
</cc1:ValidatorCalloutExtender>
接下来转到后台代码,在验证失败后添加一条注册启动脚本的语句
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "loginFailed", "window.setTimeout(\"$find('vceLoginBehavior').show();\",500);", true);                
之所以在js中用到了延时,是因为之前不用延时直接执行会发生$find('vceLoginBehavior')对象为Null的意外,遗憾的是原因我到目前也没有找到,麻烦哪位高人指点一下哈,在下先谢过!这个写法自然不够安全,最好能写成若$find('vceLoginBehavior')对象为空,隔一段时间再执行直到执行成功为止,这儿就先偷个懒,毕竟我的这个程序大多是内网用的,网速可以保证。如果觉得有必要在气泡弹出时将焦点移动到气泡所指向的文本框,那就再追加一句
ScriptManager1.SetFocus(txtPassword);
OK,大功告成!实际测试时还发现了ValidatorCalloutExtender的一个小bug,气泡部分可能被页面上的控件遮住,没设z-index的关系,不得以改了源码,AjaxControlToolkit\ValidatorCallout\ValidatorCalloutBehavior.js的第68行追加一句
popupTable.style.zIndex = "1000";
在漫长的编译过程中,想了下为什么这个控件没有指定css的class,也没有指定id,本来只要有其中任意一个,我就不用来改源码了...
以上内容适用于10618,更新到10920后,按上述做法居然出现问题,请听我继续分解...
版本更新后,运行时报错“this._popupBehavior为空或不是对象”,郁闷不已。只能把两个版本的ValidatorCalloutBehavior.js文件拿过来对比,发现问题出在直接调用behavior的时候,不会进行DOM构造了,因此找到了被封装的用于构造DOM的函数_ensureCallout()执行之,其后调用show()方法,顺利解决问题!
也就是原先的代码改为
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "loginFailed", "window.setTimeout(\"$find('vceLoginBehavior')._ensureCallout();$find('vceLoginBehavior').show();\",500);", true);

另外,新版本果然多了个id,于是添加z-index不用更改源代码了,只需要在css文件中加上一句
        #vceLoginBehavior_popupTable,#vcePwd_popupTable,#vceUsername_popupTable
        
{}{
            z-index
:1000;
        
}
   
上面的例句适用于多个ValidatorCalloutExtender存在的情况,只要写一次就可以了,几个id之间用逗号隔开。behavior的命名规则是这样的:如果已经被指定,则使用指定名称拼上"_popupTable"否则会使用Extender的id拼上"_popupTable"。舒服~
posted @ 2007-09-06 15:48 助燃 阅读(819) 评论(1) 编辑
 

2007年8月11日

在vs2008为asp.net ajax添加js智能感知
摘要: 今天找了好久,终于搞清楚了,scriptManager控件支持js智能感知,而从其继承的toolkitScriptManager不支持。至少在vs2008b2中是这样。要在js文件中添加asp.net ajax的js智能感知(与scriptManager控件无关),在js文件的开头添加这样一行即可:///<referencename="MicrosoftAjax.js"/>若要在asp...阅读全文
posted @ 2007-08-11 23:44 助燃 阅读(1328) 评论(4) 编辑
 

2007年7月24日

如何修正CalendarExtender在updatePanel中发生错位的问题
摘要: 最近用到了CalendarExtender,结果不知道为什么发生了错位,如图在Google和百度上找了很久,中文的文章里面似乎只提到了如何本地化(就是显示中文的月份)以及怎么解决被下拉框挡住的问题,谈到格式错位的好像没有,我最后在官方论坛上找到一篇文章,解决了这个问题,就在这儿贴一下~应该也算是个bug吧,可能在0618之后的版本会有补丁。解决的方法是在调用CalendarExtender的页面所...阅读全文
posted @ 2007-07-24 21:52 助燃 阅读(1240) 评论(1) 编辑
 

2007年7月21日

在asp.net中使用符合xhtml规范的spliter控件
摘要: 之前为了使用spliter而尝试了dojo,有一个很严重的问题,其对xhtml规范支持得不好,使用时必须去掉xhtml的声明,这样一来,某些ms ajax control toolkit将无法正常使用。为了寻求更好的方法,我一直没有放弃,最近终于找到了这样一个spliter控件,它能支持xhtml,并且使用起来也很方便,接下来介绍其使用方法。我的布局是经典的左侧treeview,右侧gridvie...阅读全文
posted @ 2007-07-21 16:10 助燃 阅读(979) 评论(4) 编辑
 

2007年1月30日

在Asp.net中使用dojo的splitContainer控件
摘要: 在vs2005为winForm编程,有splitContainer控件可以用;可webForm可就没有这么个东西了。去问了赵老师,他说“试试dojo的splitContainer”,于是我查了N多资料捣鼓了1天终于搞定了,下面来总结一下这次收获的经验。效果图:如何使用dojo中的某个控件 去官方网站下载最新版本的dojo,我用的是0.4.1的。 将其解压缩后放在项目所在目录...阅读全文
posted @ 2007-01-30 01:45 助燃 阅读(2197) 评论(10) 编辑
 

2007年1月1日

为gridview“删除”列添加确认对话框
摘要: 如何为gridview控件里的“删除”列添加一个确认对话框?网上众说纷纭,大致见到了三种解决方案,现归纳如下:1、继承Web.IO里的button控件,为其实现一个IPostback的接口用于回调,具体代码之复杂,只有作者自己想体会吧……2、在gridview的RowDataBound事件中,遍历所有子控件,若属于LinkButton类,且Comma...阅读全文
posted @ 2007-01-01 00:47 助燃 阅读(40202) 评论(55) 编辑
 
仅列出标题  下一页