用Asp.net Ajax和Telerik快速打造属于自己的FastDial

 

FastDial FireFox下一个常用的插件,它主要可以图片的形式显示几个不同的主页,同时你可以刷新这些图片。我一直很喜欢这个插件,可是当我没有带自己的电脑或者没有装FireFox的时候,就没那么方便了。在有一次接触了Telerik控件之后,感觉他很适合用来实现这个效果。所以,我就打算用Asp.net AjaxTelerik打造属于自己的FastDial(FastDial.org)。做之前,我找过相关的网站,可没有找到合适的。也不知道有没有一些成熟的案例,只好硬着头皮自己做了。

 

下图是FireFoxFastDial的效果图。

它的主要功能:

1.       可以增加,删除,修改一个块。

2.       区块之间可以拖拽。

3.       可以将网页保存成缩略图。

4.       区块间可自动排列。

5.       可以自己设定区块个数,链接打开方式,背景颜色等。

缺点:

1.       c/s程序,分布式应用困难。

2.       不支持多用户。

3.     只能在FireFox下使用。

 

C/S 下的FastDial

 

上面暂且当做一个简单的需求分析吧,下面我将演示怎样用Asp.net AjaxTelerik快速打造属于自己的FastDial 因为只是个简单的尝试,所以并不打算实现FastDial的所有功能。

1.       首先创建9 RadDockZone

            for (int k = 1; k < 4; k++)

            {

                for (int i = 1; i < 4; i++)

                {

                    RadDockZone zone = new RadDockZone();

                       zone.ID = "RadDockZone" + j.ToString();                   

                }

                this.TableContainer.Rows.Add(row);

            }

 

2.       在每个RadDockZone里面添加属于自己的RadDock


List<Dock> lis = new DockMgr().GetByUserID(userID);

foreach (Dock li in lis)

       {

          CreateDock(li);

       }

private RadDock CreateDock(Dock d)

        {          

            RadDock dock = new RadDock();

 

            dock.ID = d.ID.ToString();                 

            dock.Title = d.Title;        

            dock.DockMode = DockMode.Docked;           

            RadDockZone zone = (RadDockZone)RadDockLayout1.FindControl("RadDockZone"+d.DockZoneID);

            zone.Controls.Add(dock);

            return dock;

        }

 

 

3.增加AddDock页面可以用来增加自己的RadDock
public Dock AddADock(string index, string url, string title)

        {

            string userid = FastDialContext.CurrentUser.Memeber.Member_ID.ToString();         

            Dock d = new Dock();

            Dock d2 = mgr.GetByUrlAndUserID(url2, userid);

            if (d2 == null)

            {

                d.ID = Guid.NewGuid();

                d.Url = url2;

                d.Title =title;

                d.ImgPath = ImageHelper.GetImgName(url2);

                d.DockZoneID = byte.Parse(index);

                d.UserID = userid;

                d.Create_Time = DateTime.Now;          

                mgr.AddDock(d);

                return d;

            }          

         

            return d2;

        }

 

3.       增加EditDock页面可以用来修改RadDock


            DockMgr mgr = new DockMgr();

            string userid = FastDialContext.CurrentUser.Memeber.Member_ID.ToString();

            string index = Request["index"].ToString();

            string url = Server.HtmlEncode(TextBox_Url.Text);

            string title = Server.HtmlEncode(TextBox_Title.Text);

            Dock d = mgr.GetByIndexAndUserID(index, userid);

            string oldurl = d.Url;

            d.Url=url2;

            d.ImgPath=ImageHelper.GetImgName(url2);           

            d.Title = title2;           

            mgr.UpDateDock(d);

4.       增加DeleteDock页面可以用来删除RadDock

  public bool DeleteIndex(string index)

        {

            string userid = FastDialContext.CurrentUser.Memeber.Member_ID.ToString();

            return mgr.DeleteByIndexAndUserID(index, userid);

        }


 

增删改查搞定了,基本效果如下:

因为是第一次做,还有很多bug,希望大家骂声不要太大。

B/S 下的FastDial

存在的几个问题:

  1. 生成缩略图速度慢,有些时候生成缩略图会报错。
  2. 有些时候增加一个链接,图片不会刷新,要手动刷。
  3. 没钱买正式版telerik,有时候会出版权信息,刷几次就好了。
  4. 还有很多未知错误。

 

posted @ 2009-03-30 11:15  lei.dong  阅读(2535)  评论(5编辑  收藏  举报