zoukankan      html  css  js  c++  java
  • coolite 中后台动态添加portlet

      今天老大让我模仿 www.igoogle.com 做一个可以拖拽的项目审查页面,一接到这个活,我就想到用 Portal 做,

    可是难点呢就是如何动态添加,这个问题很棘手。来不及细想,就先动手了(个人觉得,只是想想想不出个所以然来)。

      我的前台代码如下:

    <ext:Portal ID="Portal1" runat="server">
    <Body>
    <ext:ColumnLayout ID="ColumnLayout1" runat="server">
    <ext:LayoutColumn ColumnWidth=".5">
    <ext:PortalColumn ID="PortalColumn1" runat="server" StyleSpec="padding:10px 0 10px 10px">
    <Body>
    <ext:AnchorLayout ID="AnchorLayout1" runat="server">

    </ext:AnchorLayout>
    </Body>
    </ext:PortalColumn>
    </ext:LayoutColumn>
    <ext:LayoutColumn ColumnWidth=".5">
    <ext:PortalColumn ID="PortalColumn2" runat="server" StyleSpec="padding:10px 10px 10px 10px">
    <Body>
    <ext:AnchorLayout ID="AnchorLayout2" runat="server">
    </ext:AnchorLayout>
    </Body>
    </ext:PortalColumn>
    </ext:LayoutColumn>
    </ext:ColumnLayout>
    </Body>
    </ext:Portal>


      最初,我是想直接在 PortalColumn 里面加,结果也是加上了,但是却不是按照自己想要的布局,添加的那个 portlet 他跑到页面顶端去了,

    很是郁闷。于是在网上查资料,很遗憾,一无所获。。。坐在电脑前,我陷入了沉思,是我搜索水平差呢,还是人家就没碰到过这样的问题呢,最后的结论是,

    肯定是我搜索能力有限,这么普遍的问题,不可能没人遇到过吧。。。

      于是一个人在那套方法,也套不出来,我的极限就快要被摧毁了。。。

      没办法,老大的任务,必须完成,于是找同事求助,那同事把我的源码一看,啊,“你忽略掉了吧,这个 coolite 你添加控件的话,要严格按照他的容器互相的包含关心来的”

    一语惊醒梦中人,原来如此。。自己学 coolite 这么久了居然连这么简单的道理都没弄清楚,惭愧。。。

      最后总结的后台代码是:
      

     
           int count = notFinishedProcInfoList.Count / 2;


    for (int i = 0; i < count; i++)
    {
    PrjBaseinfo item
    = notFinishedProcInfoList[i];
    Portlet port
    = new Portlet();
    port.ID
    = item.ID.ToString();
    port.Title
    = "项目名称:" + item.PROJECTNAME;
    //port.Height = 300;
    port.AutoHeight = true;
    port.AutoScroll
    = true;

    Literal LitMyTaskAgain
    = new Literal();
    LitMyTaskAgain.Text
    = ProcTask.DrawMyAllTaskList_NotFinished_PJJ(strUserCode, port.ID);

    port.BodyControls.Add(LitMyTaskAgain);//add dotnet standard control

    Anchor anchor
    = new Anchor();
    anchor.Horizontal
    = "100%";
    anchor.Items.Add(port);
    AnchorLayout1.Anchors.Add(anchor);

    PortalColumn1.DoLayout();
    Portal1.DoLayout();

    注意:

    PortalColumn1.DoLayout();
    Portal1.DoLayout();

    这两句一定要加上,否则不会更新添加的 portlet.

    如有更好的办法,还请高手教我。。。

      

  • 相关阅读:
    jQuery选择器大全(48个代码片段+21幅图演示)
    抽象和模型
    什么叫做精通,我来给大家解释一下
    设置浏览器固定大小的固定位置的方法
    selenium对浏览器属性操作的方法
    selenium 最大化浏览器是解决浏览器和驱动不匹配的方法如下
    java selenium手动最大化chrome浏览器的方法
    java selenium启动火狐浏览器报错:Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: VISTA Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z
    mygenerator().next() AttributeError: 'generator' object has no attribute 'next'
    马的遍历 搜索
  • 原文地址:https://www.cnblogs.com/jiejie_peng/p/1733941.html
Copyright © 2011-2022 走看看