ASP.NET-FineUI开发实践-17
我又不用FineUI开发,所以FineUI项目经验等于0,最近在忙别的,所以也没工夫研究。积累了论坛和群里的问题,写下来留个备份


</Columns>
<Listeners>
<f:Listener Event="beforeedit" Handler="Gbeforeedit" />
</Listeners>
</f:Grid>
function Gbeforeedit(editor, e, eop) {
//得到选择器控件
var edcmp = e.column.getEditor();
//如果是个text
if (edcmp.getXType() == "textfield") {
//选中文字,注意延迟,
window.setTimeout(function () {
edcmp.selectText();
}, 100);
}
}

2.封了一下上级回发的方法,以前写过,都是前台的,给封了一下下,改了源码
/// <summary>
/// 触发上层方法 方法名称,参数,参数,参数
/// </summary>
/// <param name="funname">方法名称</param>
/// <param name="eves">参数</param>
public void ParentsCustomEvent(string funname, params string[] eves)
{
string eve = funname + '|' + string.Join("$", eves);
//string js = "(function(){var aw=F.wnd.getActiveWindow();if(aw){aw.window.F.customEvent('" + eve + "');}})();";
string js = "(function(){parent.F.customEvent('" + eve + "');})();";
FineUI.PageContext.RegisterStartupScript(js);
}
/// <summary>
/// 触发上层方法 是否关闭窗体,方法名称,参数,参数,参数
/// </summary>
/// <param name="bhide">是否关闭窗体</param>
/// <param name="funname">方法名称</param>
/// <param name="eves">参数</param>
public void ParentsCustomEvent(bool bhide, string funname, params string[] eves)
{
string eve = funname + '|' + string.Join("$", eves);
string hide = "";
if (bhide)
{
hide += "aw.f_hide();";
}
string js = "(function(){var aw=F.wnd.getActiveWindow();if(aw){aw.window.F.customEvent('" + eve + "');" + hide + "}})();";
//string js = "(function(){parent.F.customEvent('" + eve + "');})();";
FineUI.PageContext.RegisterStartupScript(js);
}
这个方法就是把得到上级给得到然后回传方法,触发上级的PageManager1_CustomEvent事件第二个是个重载,给改了,实现的目的就是可以传自己想传的参数,比如下面这个方法
protected void btnSaveContinue_Click(object sender, EventArgs e)
{
// 1. 这里放置保存窗体中数据的逻辑
//方法名称,参数
ParentsCustomEvent("show", "就是这么封", "就是这么封1", "就是这么封2", "就是这么封3", "就是这么封4");
// 2. 关闭本窗体,然后回发父窗体
//PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
父页面就可以写成
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
//方法名称
if (e.funname == "show")
{
string s = "";
//循环参数集合
foreach (string item in e.evelist)
{
s += item + ";";
}
//事件参数
Alert.Show(s);
}
}
CustomEventArgs扩展了两个参数,就是定义了一个规则罢了 既然叫自定义事件参数那就自定义好了
/// <summary>
/// 自定义事件参数
/// </summary>
public class CustomEventArgs : EventArgs
{
private string _eventArgument;
/*扩展参数*/
private List<string> _evelist;//事件参数集合
private string _funname;//触发方法名称
/// <summary>
/// 触发方法名称
/// </summary>
public string funname
{
get { return _funname; }
set { _funname = value; }
}
/// <summary>
/// 事件参数集合
/// </summary>
public List<string> evelist
{
get { return _evelist; }
set { _evelist = value; }
}
/// <summary>
/// 事件参数
/// </summary>
public string EventArgument
{
get { return _eventArgument; }
set { _eventArgument = value; }
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="eventArgument">事件参数</param>
public CustomEventArgs(string eventArgument)
{
_eventArgument = eventArgument;
/*扩展解析方法*/
_evelist = new List<string>();
if (eventArgument.IndexOf('|') > )
{
_funname = eventArgument.Split('|')[];
string[] s = eventArgument.Split('|')[].Split('$');
for (int i = ; i < s.Length; i++)
{
_evelist.Add(s[i]);
}
}
}
}
/// <summary>
/// 启用保存多行选择
/// </summary>
[Category(CategoryName.OPTIONS)]
[DefaultValue(true)]
[Description("启用多行选择")]
public bool KeepCurrentSelection
{
get
{
object obj = FState["KeepCurrentSelection"];
return obj == null ? false : (bool)obj;
}
set
{
FState["KeepCurrentSelection"] = value;
}
}
3534行改下
if (EnableMultiSelect)
{
if (KeepCurrentSelection)
{
selectOB.AddProperty("mode", "SIMPLE");
}
else
{
selectOB.AddProperty("mode", "MULTI");
}
}
就可以了,环境是4.2.2


ASP.NET-FineUI开发实践-17的更多相关文章
- FineUI开源版(ASP.Net)开发实践-目录
点我订阅 目前所有博客的截图,方便离线观看,点图片 FineUI初学手册 下载,实例项目搭建 FineUI初学手册-部分JS整理 部分JS整理 ASP.NET-FineUI开发实践-1 实际开发环境是 ...
- FineUI开发实践-目录
点我订阅 目前所有博客的截图,方便离线观看,点图片 FineUI初学手册 下载,实例项目搭建 FineUI初学手册-部分JS整理 部分JS整理 ASP.NET-FineUI开发实践-1 实际开发环境是 ...
- FineUI开发实践
ASP.NET-FineUI开发实践-7 摘要: 下拉显示grid列表.其实很简单,但是试了很多方法,水平有限,主要是都不好使,还是简单的好使了,分享下.先是看了看网上的,是直接写个了extjs控件类 ...
- ASP.NET-FineUI开发实践-11
我用实例项目写了个子父页面传值,算是比较灵活的写法,可以把js提取出来写成包,然后调用,我先一步一步写,为有困难的朋友打个样. 先画个页面: 上面是个查询用的表单,底下是表格,内存分页,用到了VBox ...
- ASP.NET-FineUI开发实践-9(四)
现在是这么个问题,在开发中表格是动态出来的,就是标准板是全部字段列出,客户要根据情况列出自己想要的,在增加操作页面的同时要是能用前台自带的功能直接保存到后台就好了,现在的列显示和隐藏是不回发的. 1. ...
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...
- ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询
上次把咨询的架构搭好了,现在分两次来完成咨询:1.用户部分,2管理部分.这次实现用户部分,包含两个功能,查看我的咨询和进行咨询. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NE ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 修改及删除文章
上次做了显示文章列表,再实现修改和删除文章这部分内容就结束了,这次内容比较简单,由于做过了添加文章,修改文章非常类似,就是多了一个TryUpdateModel部分更新模型数据. 目录: ASP.N ...
随机推荐
- 修改app名字
一张图说明问题 如果没有成功clean一下,或者卸载掉原有的重新生成一下 如果要修改路径名和工程名有个复杂的方法 http://blog.sina.com.cn/s/blog_a42013280101 ...
- Scut DirCenter 网站编辑、搭建与调试
直接利用 Scut 提供的服务器管理工具进行服务器管理. 教程:https://github.com/ScutGame/Scut/wiki/DirServer. 几个注意点: 下载的数据库导入bat是 ...
- 使用jQuery UI方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
通过从零到一的教程,我们已经得到了通过mnist训练集生成的caffemodel,主要包含下面四个文件: 接下来就可以利用模型进行测试了.关于测试方法按照上篇教程还是选择bat文件,当然python. ...
- SharePoint 2010 产品六大功能模块
对IT专业人员来说,新的产品,意味着新的功能,IT生产力提高的契机,更加关心如何使用新产品投入更少,产出更多.在本文中我们通过对SharePoint 2010产品的功能介绍.管理中心新功能介绍.系统新 ...
- SHell命令总结
cat files-to-copy.txt | xargs -i cp {} /tmp
- linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
•/etc/passwd文件用于存放用户账户信息,每行代表一个账户,每个账户的各项信息用冒号分割,例如: root:x:::root:/root:/bin/bash username:password ...
- 数据结构(堆):SCOI 2009 生日礼物
Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩 珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个 ...
- oracle 表查询(2)
使用逻辑操作符号 问题:查询工资高于500 或者是岗位为MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的J? or job = 'MANAGER') and ename LIKE 'J%' ...
- Android从网络中获取xml文件并解析数据
public class XmlwebData { @SuppressLint("UseValueOf") public static List<Person> get ...