LightSwitch学习阶段疑难问答
来源:互联网 发布:报价单自动生成软件 编辑:程序博客网 时间:2024/06/11 23:15
LIGHTSWITCH学习一阶段,通过实际项目进行练手,期间也遇到了不少问题,通过查询MSDN,访问LIGHTSwitch开发团队BLOG,也积累了一点经验。特此记录,以留后人学习时参考。
一开始时,LightSwitch环境很不正常,VS的工具箱也找不到,同时无法进行代码编辑。此问题经查,初步可以判断是安装了Async-CTP1所致(可能与ls处理有冲突)。但直接卸载该工具却无效,只得全部重装系统。
1、OOB模式下禁用System.Windows.Browser.HtmlPage.Window.Navigate方法,如何打开一个新的窗口。 if (AutomationFactory.IsAvailable) { dynamic shell = AutomationFactory.CreateObject("Shell.Application"); shell.ShellExecute("http://localhost"); } else if (!System.Windows.Application.Current.IsRunningOutOfBrowser) { System.Windows.Browser.HtmlPage.Window.Navigate(new Uri("http://localhost"), "_blank"); }2、Lightswitch中如何取得当前URI,同上OOB模式System.Windows.Application.Current.Host.Source 而非默认的Application.Current.3、跨进程调用,如显示自定义的窗体: Dispatchers.Main.BeginInvoke(() => { SelectFileWindow selectFileWindow = new SelectFileWindow(); selectFileWindow.Closed += new EventHandler(selectFileWindow_Closed); selectFileWindow.Show(); });4、IVisualCollection<T>.AddNew() 不应从 UI 线程中进行调用,此问题出在一个异步调用完成(如上传文件成功后),需对集合进行操作时。 ProjectDocData.Details.Dispatcher.BeginInvoke(() => { var data = ProjectDocData.AddNew(); data.DisplayName = e.ItemInfo.Name; data.FilePath = "fa"; data.ProjectDocItem = this.ProjectDoc.SelectedItem; // }); });ProjectDocData 为T5、如何设置默认值:1.在数据源表的Created事件中处理public partial class WorkPlanHead { partial void PlanYearMonth_Compute(ref string result) { // 将结果设置为所需的字段值 result = string.Format("{0}年{1}月", this.PlanYear, this.PlanMonth); } partial void WorkPlanHead_Created() { if (DateTime.Now.Month == 12) { this.PlanYear = DateTime.Now.Year + 1; this.PlanMonth = 1; } else { this.PlanYear = DateTime.Now.Year; this.PlanMonth = DateTime.Now.Month + 1; } this.FillDate = DateTime.Now; } }2.在SCREEN事件中处理 public partial class WorkPlanHeadsListDetail { partial void WorkPlanHeadsListDetail_Created() { // 在此编写您的代码。 // PlanYear1为SCREEN中控件的名字; this.FindControl("PlanYear1").ControlAvailable += new EventHandler<ControlAvailableEventArgs>(WorkPlanHeadsListDetail_ControlAvailable); } void WorkPlanHeadsListDetail_ControlAvailable(object sender, ControlAvailableEventArgs e) { var t = e.Control as TextBox; } }6、It is not valid to create a Data Workspace on the current thread because it was not created by the LightSwitch runtime这是在发布模式(布署到应用现场或Release)模式下,LS不支持自定义设置窗口。该功能仅提供给开发人员调试时使用,需VS环境运行支持。7、如何处理数据的权限,即某些人可以访问全部数据,而部分人只能访问自己的数据使用数据实体的XX_All_PreprocessQuery方法进行数据的过滤,此过程在服务器端执行。partial void WorkPlanDetails_All_PreprocessQuery(ref IQueryable<WorkPlanDetail> query) { if (!Application.User.HasPermission(Permissions.CreateMonthPlanHead)) //如果没有创建计划主体的权限,仅显示自己相关的计划内容 { query = query.Where(p => p.Filler == Application.User.FullName); } }注:在SCREEN上,可通过给数据源加上过滤条件(参数)来判断,但SCREEN成功执行只显示一部分数据,导出数据时却导出全部的数据。因此,估计SCREEN只是在客户端执行数据过滤功能。
- LightSwitch学习阶段疑难问答
- lightswitch阶段学习积累
- 常见电脑疑难问答
- gridView疑难问答
- Linux常见疑难问答
- Linux常见疑难问答
- Linux常见疑难问答
- LightSwitch学习--(一)前言
- PPP学习疑难解决
- LightSwitch学习--(一)lsml文件
- PHP开发中关于文件操作的疑难问答
- 针对初学PHP者的疑难问答(1)
- 针对初学PHP者的疑难问答(2)
- 疑难
- 学习阶段
- 学习阶段
- 学习阶段
- 学习阶段
- 基于ASP.NET的开源Blog程序总结
- Android中Service的使用详解和注意点(LocalService)
- SQL
- Blazeds StreamingAMFChannel error for HTTP 1.0 protocol
- hdu_1013_Digital Roots_必须用高精度
- LightSwitch学习阶段疑难问答
- dialogArguments的用法
- glut使用
- 1097 A hard puzzle
- Windows下emacs-w3m设置代理
- AS3之NetStatusEvent参考,视频播放
- 教你如何正确地在ATM上取钱
- Android 字体大小怎么自适应不同分辨率?
- GPIO驱动分析 & GPIO使用方法--S5PC110和S5PC210