分享

fineui总结

 悟静 2014-01-30

   使用region 和grid 进行布局时只要设置个Height 和  AutoScroll="true"就好 这样 就会按你想的需要的时候自动出现滚动条 同时 可以填充整个屏幕的宽度

如果不设置高度 那么grid 的高度会自动默认为你第一次加载数据时 数据所占用的高度 如刚开始加载出来的只有三条 那么以后不管加载几条 都只会出现三条 因为高度只有三条的高度

 <x:Region ID="Region2" Position="Center" ShowBorder="false" ShowHeader="false" runat="server"
                AutoScroll="true" >
                <Items>
                    <x:Grid runat="server" Title="管辖单位"  AllowPaging="true" IsDatabasePaging="true"  PageSize="29" >


使用数据绑定控件时 如使用dropdownlist 时 如果 dropFormula.DataTextField = "FormulaName";
            dropFormula.DataValueField = "Id"; 指定的任何一个字段不存在时 控件显示正常 不会报错 但是你无论怎么选择 都无法选中你要选的那个值  以后如果再发生这种莫名其妙的错误 要看一下绑定的字段是否真实存在。 

弹出窗口要使用方法二 不要使用方法1去单独设置属性 入股使用方法一会post 两次  而方法二只post 一次 速度快 也符合常理 

方法一  window1.IFrameUrl = "AddDialog.aspx?Id=" + gridDistrict.Rows[gridDistrict.SelectedRowIndex].DataKeys[0];
                window1.Title = "修改";
                PageContext.RegisterStartupScript(window1.GetShowReference());

方法二

PageContext.RegisterStartupScript(window1.GetShowReference(string.Format("AddDialog.aspx?Id={0}&DistrictId={1}", id, districtId), "修改"));

使用 以下布局 不管怎么弄内容都出不来 主要是因为 模板页中 form里的div 没有去掉  去掉之后就显示正常   <x:RegionPanel ID="RegionPanel1" runat="server" ShowBorder="false">

母版页应是如下样子才正确

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Huanwei.Web.Site" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml">
<head runat="server">
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body style="margin: 10px;">
    <form id="form1" runat="server">
    <x:PageManager ID="PageManager2" AjaxLoadingType="Mask" runat="server" AjaxTimeout="600000" />
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>
    </form>
</body>
</html>


使用弹出窗口时 如果需要弹出其它页面 需要用 EnableIFrame="true"    否则什么都显示不出来

在使用可编辑的grid的时候,EnableCheckBoxSelect=true 不起作用 就是没有办法显示复选框 多选也无效 而且要进行多个删除 必须是先使用删除按钮假性删除  删除之后再通过另外一个按钮如保存按钮 点击时才去真的删除数据。 因为第一个删除按钮必须使用enablepostback=false。否则会出错。

使用fineui的时候 以下这一句话一定要有 否则绑定grid 时老是出现未将对象引用设置实例  <x:PageManager  runat="server" />

后台可以直接调用grid中的控件

 在grid 中如何实现一个按钮实现两个功能

前台
<%--    CommandArgument='<%# Eval("State") %>' 这样的调用在fineui控件里识别不了 除非使用模板 调用asp控件--%>
 <x:LinkButtonField ConfirmTarget="Top"   runat="server" HeaderText="操作" CommandName="importDelete" ColumnID="lbfImport" />

后台

protected void Grid1_PreRowDataBound(object sender, FineUI.GridPreRowEventArgs e)

        {
            //设置数据来源列的值
            FileImportDto row = e.DataItem as FileImportDto;
            row.Plant_Name = dic[row.PlantCode];
            //设置查看按钮是否可用
            LinkButtonField lbfViewLog = Grid1.FindColumn("lbfViewLog") as LinkButtonField;
            lbfViewLog.Enabled = !string.IsNullOrWhiteSpace(row.Log);
            //设置操作列按钮是显示导入还是删除
            LinkButtonField lbfImport = Grid1.FindColumn("lbfImport") as LinkButtonField;
            bool isImport = (FileImportState)row.State == FileImportState.NotStarted;
            lbfImport.ConfirmText = isImport ? null : "确认要删除导入数据吗";
            lbfImport.Text = isImport ? "导入数据文件" : "删除数据";

        }


2013-9-12 15:02

grid 在grid 中编辑  编辑后统一按钮保存PJ_Apply.aspx    遇到不存 获取不到正确的数据时  是因为 没有给列设置ColumnID 设置一下就会正常 。但是保存之后红色的标志还在不知道是为什么 但官网的例子不会

   如果弹出框与父页面代码在同一个页面中完成 而弹出款又使用用户控件,会导致不管怎么赋值给用户控都赋不了值,还有一种情况就是如果父页面有用户控件 点父页面的某个用于生成下载,要想给用户控件赋值,必须在用户控件中使用隐藏域存储附的值


2013-8-23 firefox 下  水表用户 原始水表  点击修改出来的界面 用户信息界面无法显示  而修改记录却可以显示不知道为什么 我就加了个 空的tab 标签上去 并将activeIndex设置为1 这样就显示出来了 


gridviw  选择框出不来因为没有设置DataKeyNames


导出第一遍可以导出 不刷新导第二遍时 倒不出来。暂时的解决办法是导出前弹出对话框(由于弹出后 无法再导出之后关闭 所以这个后面需要解决)

 string filename = eh.WriteTuikuanStatics(mblist, mplist);
             string filepath = Server.MapPath("~/outputtuikuan/" + filename);
             winexport.IFrameUrl = "form/export.aspx?filename=" + filename;
             FineUI.PageContext.RegisterStartupScript(
                 winexport.GetShowReference());    

原始水表 提交修改后 死活刷新不了页面??待处理


1:用 <ext:Button 做按钮时 里面的菜单用的是<Menu而不是 <ext:Menu

2:  使用<ext:RegionPanel 布局时  必须设定 <ext:PageManager ID="PageManager1" runat="server"  AutoSizePanelID="RegionPanel1"/> 否则 内容浏览页面的时候  页面空白

3:要想在内容不溢出时不出现滚动条 溢出时出现 要对外围框架设置(主要是给外围框架设置一个高度)  Layout="Fit" Height="200px"

4:  想不通过点击加减符号来展开树节点  而是希望直接点击节点就展开 需要设置  node.SingleClickExpand = true;  触发的事件是OnNodeExpand 而不是 OnNodeCommand

5 :不知道为什么 我 设置了 node.AutoPostBack = true 还是无法触发是 OnNodeCommand事件

6:要设置延迟加载(点击节点时才去加载子节点),要设置 AutoLeafIdentification="false"

7:  <ext:Form 中使用用户控件时     用户控件必须同时放在一个Panel和UserControlConnector里 。如果只放在UserControlConnector 里的话  到时候页面会加载不出来 一直在那边转,同时设置的Label 显示不出来

(但在SimpleForm中不用加Panel也 可以正常显示 

<ext:Panel ID="Panel1" runat="server" BoxMargin="0 0 0 0" BodyPadding="0px" ShowBorder="false"
                        ShowHeader="false" Title="Panel">
                        <Items>
                            <ext:UserControlConnector ID="UserControlConnector1" runat="server">
                                <uc1:DropPJType ID="DropPJType1" runat="server" IsReadOnly="false" />
                            </ext:UserControlConnector>
                        </Items>
</ext:Panel>

8:DropDownList 设置成ReadOnly =true 时  那个下拉列表出不来(变成了一个只读文框)

9:前台绑定后台变量。<%# %> 这种方式可以绑定服务器控件和客户端控件 并且后台要 Page.DataBind();    <%= %> 这种方式只能用于绑定客户端控件

前台用 Text="<%# SystemParameter.CurrentYear.ToString() %>"

后台需要

           if (!IsPostBack)
            {              
                Page.DataBind();
            }

2013 12 20

  <x:Label runat="server" ID="labAcc"  Text="<%# acc.AccStr %>"></x:Label> 这样子对fineui控件绑定没有用要对Asp控件绑定才有用

<%= acc.AccStr %> 也是对fineui控件绑定没有用要对Asp控件绑定才有用


10:版本升级到3.3  老项目不需要修改 web.config,不需要修改代码
只需要替换FineUI.dll,然后拷贝一个生成好的 extjs 目录到根目录即可!!
 下载地址 http:///bbs/forum.php?mod=viewthread&tid=3218 (登录之后 可以下载博主已经生成好的东西)

10:tab1假设切换到tab2 之前 你希望只有Tab1中的信息保存之后 才能跳到tab2 这个要怎么做呢? 可以用一个隐藏控件标识tab1 信息是否保存,然后再根据此字段判断是否enbaled  tab2  。同时 tab1 中的保存按钮要有如下代码   PageContext.RegisterStartupScript(String.Format("this.__doPostBack();")); 才行。若果是弹出窗要控制父窗体的tab  可以将this改成Parent  如果要将参数传回可以放在在doPostBack的括号中

 

 

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
            }

//记住是在 !IsPostBack  外判断哦
            if (string.IsNullOrEmpty(this.hidenHeXiaoID.Text))
            {
                this.tabDetail.Enabled = false;
            }
            else { this.tabDetail.Enabled = true; }

        }


 

前台

<%-- <script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>--%>
    <script type="text/javascript">
        //此方法用余后台使用如下语句时使用  FineUI.PageContext.RegisterStartupScript(Confirm.GetShowReference("要删除该类型已导入的文件和数据吗?删除后可以重新导入数据。", "消息", MessageBoxIcon.Warning, "deleteImport(" + row.DataKeys[1] + ")", ""));
        //此方法有缺陷,删除数据后会刷新整个页面,除非再用js去动态更改页面对应的变化信息。

                var _plantCode;
                var _category;
                function deleteImport(category) {
                    this._category = category;
                    _plantCode = "<%=dropPlant.SelectedValue %>";
                    var url = "../ashx/DataImport.ashx";
                    url += "?action=DeleteImport&plantCode=" + _plantCode + "&category=" + _category;
                    //           if(confirm("要删除该类型已导入的文件和数据吗?删除后可以重新导入数据。"))
                    //            {
                    $.post(url,
                            function (data) {
                                if (data == "ok") {
                                    alert("导入数据已删除");
                                    location.href = "DataImport.aspx?plantCode=" + _plantCode;
                                }
                                else {
                                    alert(data);
                                }
                            });
                    //            }
                }
    </script>

后台

 //此句用于 当使用前台js post 调用ashx中的方法时使用
                        //FineUI.PageContext.RegisterStartupScript(Confirm.GetShowReference("要删除该类型已导入的文件和数据吗?删除后可以重新导入数据。", "消息", MessageBoxIcon.Warning, "deleteImport(" + row.DataKeys[1] + ")", ""));





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多