使用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.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/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://fineui.com/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] + ")", ""));