摘要:
之一,之二,之三之前讲到,方法声明为: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effort.EffortPlannedValues, "/SFC/Efforts/AjaxSetEffortPlanned?itemID=" + story.ID + "&value={0}", ajaxOnSuccess: "refreshLeftPad");
调用的例子: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effo 阅读全文
摘要:
之一,之二,之三先重温一下原则:最小信息原则:方法接口应只传递最必须的业务信息。包括两个层面:1. 技术信息不要暴露2. 业务信息不能重复业务信息分析先别管技术问题,想一想做这个事情需要哪些数据才能完成?1. 原来的值是多少(显示用)2. 可能的值有哪些(选择用)3. 点一个值后,应该执行什么操作(这个是核心业务)4. 返回后做什么(刷新用)还有一些问题哪去了?5. 返回的值刷新到哪里?这个调用者不管,他让我们安排,显示也是我们显示(比如一个DIV),刷新自然就是刷新我们显示的那个位置。6. 如果返回后什么都不做怎么办?看着办。最终方法接口设计为: public static M... 阅读全文
摘要:
之一,之二,之三有很多时候,需要我们在代码中执行很多重复的工作,这时候要涉及到如何使用可复用的方法来解决重复性问题。比如一个项目管理系统,要求在不同的页面的不同位置都能调整任务的估算工作量,而且要使用Ajax方法(因为每次调整后都要实时看到总计),应该如何做呢?从操作步骤上看,大致分为这么几步:0. 显示当前的值(应该看上去能修改的样子)1. 点击当前值,弹出一个小窗口,里边是可能的取值(比如0.25, 0.5, 1, 2, 3,5……天),且显示为链接(因此用户会去点)2. 点击其中一个链接(Ajax链接),执行某个Ajax功能3. 若成功,应该返回新的数值4. 如果需要,更新某些计算结果( 阅读全文