Fix a Bug of AjaxToolkit

在做NB88Game的时候,用的是ModalPopupExtender模式弹出框组件。ModalPopupExtender默认是随滚动条滚动Div的,但是其中有一个Div特别长,所以改变RepositionMode为None,但是无效。

经过一番查找,发现是一个Bug。在ModalPopupBehavior.js中的initialize函数中没有初始化position,而是用的固定值:this._foregroundElement.style.position = 'fixed';

在此函数最后加上以下这段初始化,一切OK了。哈哈:
var positioning = this.get_repositionMode();
        if ((positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowScroll) ||
(positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll)) {
            this._foregroundElement.style.position = 'fixed';
        } else {
            this._foregroundElement.style.position = 'absolute';
        }

IIS重定向

最近NB要把nb88.newbalance.com.cn指向www.newbalance.com.cn/nb88.aspx

NB的域名供应商在美国,那边说能做URL转向。
唉,无奈。
要么做IIS重定向,要么做页面跳转。

IIS重定向:目录->重定向到URL

页面跳转:
<% 
requireURL = request.ServerVariables("HTTP_HOST") 
Select Case requireURL 
           Case "nb88.newbalance.com.cn"    response.redirect "http://www.newbalance.com.cn/nb88.aspx" 
           Case Else     response.redirect "http://www.newbalance.com.cn/home.asp" 
End Select 
%>

Linq的LEFT JOIN和RIGHT JOIN方案

Linq只有join,就是inner join啦,只有用如下方案:

var result = from p in snsDC.NT_User
                         join q in snsDC.NT_Photo on p.Portrait equals q.PhotoID into pq
                         from r in pq.DefaultIfEmpty()
                         where userIDs.ToArray().Contains(p.UserID.ToString())
                         select new { p.UserID, p.UserName, r.FilePath };

Linq的Contains错误

今天用Linq的Contains实现SQL下(WHERE...IN)语句,有如下错误:
“方法“Boolean Contains(System.Guid)”不支持转换为 SQL。”

源代码如下:
var result = from p in snsDC.NT_User
                         join q in snsDC.NT_Photo on p.Portrait equals q.PhotoID into pq
                         from r in pq.DefaultIfEmpty()
                         where userIDs.Contains(p.UserID.ToString())
                         select new { p.UserID, p.UserName, r.FilePath };

分析:
估计是Linq无法将IList的Contains方法正确翻译为SQL语句。

改为:
var result = from p in snsDC.NT_User
                         join q in snsDC.NT_Photo on p.Portrait equals q.PhotoID into pq
                         from r in pq.DefaultIfEmpty()
                         where userIDs.ToArray().Contains(p.UserID.ToString())
                         select new { p.UserID, p.UserName, r.FilePath };

Live-Android

对于想尝试Google Android手机操作系统,又苦于没有基于Android平台手机的用户。现在将有机会在自己的PC机上一试Android的风采。
用户只需要从官方下载ISO,刻录成光盘后重启用光盘引导,即可感受Google的这款手机操作系统。
在我们等待Google Chrome操作系统之前,Android系统的LiveCD也许可以让我们提前感受一下Google的操作系统。
另外,这款系统也支持VirtualBox或微软Virtual PC虚拟机,用户完全可以在虚拟机中进行尝试。

先VMWare再刻录了张盘,都只有一张图片,运行不起来。查了下Google,是有不兼容问题。