快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

伟德国际1949手机版_酒文化网进入



前面已经提到过EXT.NET了。EXT.NET是一组基于ExtJS库开拓的开源的ASP.NET组件。

应用Ext.NET开拓,比直接写JS更利于掩护,也更方便开拓。因为官方没有文档(只有DEMO),很多环境下只能看看DEMO并且结合Extjs的API来摸索了。是以,在开拓一些相对繁杂的结构的界面时,照样有必然难度的。接下来,笔者将逐一讲述自己在开拓历程中设计的一些相对复制的结构的界面,权且作为自我总结,也给新人接手时留点文档。如有不够之处,请回覆。因为不停都很忙,不必然会回覆。编写此文,也是断断续续的。

下面就从事情台开始吧,如以下界面:

当点击其他折叠面板时,如【可撤销事务】,该面板就会展开,并刷新数据:

那么详细是怎么实现的呢,下面来阐发代码吧。

(一)首先,将EXT.NET控件添加到网页,并指定前缀。并添加ResourceManager控件。

详细代码如下:

至于将EXT.NET控件添加到项目等等步骤,笔者就不先容了。

ResourceManager控件是Extjs全部AJAX哀求的核心。在添加任何Ext.NET控件前,都必要先添加ResourceManager控件。

(二)接下来,就必要编写一些JS了。

应用EXT.NET就不代表不必要写EXTJS,更不代表不必要懂得Extjs。你会发明,在应用EXT.NET的历程中,也会对Extjs有必然的懂得。下面先将JS贴上来:

下面就逐一阐明这些JS函数:

ShowWin:打开一个新的带关闭按钮、最大年夜化、最小化的模式窗口。listeners里面添加了beforedestroy事故,该事故在窗口关闭时触发。伟德国际1949手机版

“.reload();”用于刷新“待处置惩罚事务”的数据。当办事器控件放在用户控件或者母版页里面时,留意应用办事器标记来获取客户端ID。

toExcuteOperations:封装在别的的JS文件里,用于处置惩罚每项事务,因为代码量多,就不贴出来了。

updateStore:更新数据。有的控件设置了IDMode="Static",故可以直接应用控件的办事器ID来获取工具。

ExcuteCommand:履行敕令。当为View时,打开响应的窗口。

getPageSize1:获取分页数。

checkboxBeforerowselect:在选择行首的复选框时的判断。即在某种环境下弗成选。

setTitle:设置列显示的html。这里是当overtimeflag为1时,该行该列的数据加粗变红。引用地方如下:

(三)然后,就必伟德国际1949手机版要编写页面代码了。先贴出代码:

--%>

('+#{Store1}.getTotalCount()+')'); " />

门店名称"

DataIndex="ShopName" />

--%>

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsText="是否分组" EnableRowBody="true" EnableGrouping="true">

--%>

('+Store2.getTotalCount()+')'); " />

门店名称"

DataIndex="ShopName" />

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsText="是否分组" EnableRowBody="true">

--%>

('+Store6.getTotalCount()+')'); " />

门店名称"

DataIndex="ShopName" />

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsText="是否分组" EnableRowBody="true">

--%>

('+Store3.getTotalCount()+')'); " />

门店名称"

DataIndex="ShopName" />

--%>

--%>

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsText="是否分组" EnableRowBody="true">

--%>

('+Store4.getTotalCount()+')'); " />

门店名称"

DataIndex="ShopName" />

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsT伟德国际1949手机版ext="是否分组" EnableRowBody="true">

('+Store5.getTotalCount()+')'); " />

1 ? "项" : "项"]})'

GroupByText="按当前列分组" ShowGroupsText="是否分组" EnableRowBody="true">

设置设置设备摆设摆设对照多,然则并不繁杂。这种设置设置设备摆设摆设,比写js设置设置设备摆设摆设轻易多了。而且更易于掩护。都写这么多了,我也不过多解说了。就简单阐明下好了。

1)首先先容下Viewport。ViewPort会跟着浏览器显示区域的大年夜小自动改变,它代表全部浏览器的显示区域。Viewport不必要指定renderTo,由于它直接衬着到页面的body区域,以是在一个页面中就只能有一个ViewPort实例。在自适应浏览器方面,应用Viewport很方便。接下来再看下面的设置设置设备摆设摆设:

在Viewport的AfterLayout 事故触发后,设置了所有的GridPanel的高度。

2)折叠面板:

3)获取数据。留意Store控件,这部分可以参考ExtjsAPI。

GroupField属性:分组的字段。

HttpProxy控件:HttpProxy用于哀求远程数据,Url属性可以指定页面路径。

JsonReader控件:用于读取Json数据。留意属性TotalProperty和Root,分手是设置总记录数和根元素的,假如设置不精确,将读取不到数据。

BaseParams属性:用于设置哀求的参数。在任何哀求时都邑发送,不合于AutoLoadParams属性。

Httphandler类部分代码如下:

/// 已办义务列表

///private void GetAlreadyDoTaskList()

{//设置JSON数据款式

this.context.Response.ContentType = "text/json";TaskServices _ts = new TaskServices();

var result = _ts.SelectTaskApproval();var pagingEmployees = new Paging(result, result.Count);

var _json = JSON.Serialize(from e in pagingEmployees.Data

select new{

e.TaskTitel,e.FSname,

e.TaskBeginDate,e.TaskEndDate,

e.TaskHours,e.UserName,

e.BeginDate,e.ShopkeeperName,

e.PhasesId,e.PhasesName,

e.DealHours,e.DealDate,

e.Remark,e.DealFAID,

e.FAName,e.DealFSID,

e.ShopName,e.PNID,

e.PTID,e.overtimeflag

});StoreResponseData sr = new StoreResponseData

{Total = pagingEmployees.TotalRecords,

Data = _json};

sr.Return();}

4)设置GridPanel的标题以及记录总数。

Listeners>

Load Handler="#{GridPanel1}.setTitle('待处置惩罚事务('+#{Store1}.getTotalCount()+')'); " /> Listeners>

5)义务名在必然前提下变红。

setTitle函数上面先容过,就不赘述了。

6)设置敕令。

先设置敕令列(ImageCommandColumn):

ext:ImageCommandColumn Header="操作" DataIndex="FileTypeName">

Commands>ext:ImageCommand CommandName="View" Icon="TableEdit" />

Commands>PrepareCommand Fn="prepareCommand" />

ext:ImageCommandColumn> ext:ImageCommandColumn Header="审批历史">

Commands>ext:ImageCommand CommandName="ExamineList" Icon="ApplicationViewList" Text="审批历史">

ToolTip Text="审批历史" />ext:ImageCommand>

Commands> ext:ImageCommandColumn>

然后设置GridPanel的Listeners属性。

7)满意必然前提的复选框才容许选择。

--%>

SelectionModel属性用于设置GridPanel的选择模型,有行选择、复选框选择等模型。这里的checkboxBeforerowselect函数已经先容过,就不赘述了。

8)顶部对象条设置。这里的按钮是根据登岸角色结合义务来节制的。这部分在后台设置。详细如下:

protected void Page_Load(object sender, EventArgs e)

{if (!IsPostBack)

{ResourceManager1.BuildAllPrivilegesForExtNET();

//获取当前用户的登岸信息UserService userServices = new UserService();

UserInfo userinfo = userServices.SelectUserbySharePointId();using (NBShopDataContext _db = new NBShopDataContext())

{//获取操作Code列表

var _FACodeLst = _db.SelectFacodeForTasklist(userinfo.UserId).ToList();if (_FACodeLst != null && _FACodeLst.Count > 0)

{Toolbar1.Items.Clear();

tbButtons.Items.Clear();foreach (var item in _FACodeLst)

{//转换成操作罗列

FACodeEnum _face = (FACodeEnum)System.Enum.Parse(typeof(FACodeEnum伟德国际1949手机版), item.facode);switch (_face)

{#region 取消

//取消case FACodeEnum.Cancel:

SetButton(Icon.Cancel, "取消", FACodeEnum.Cancel, Toolbar1, "GridPanel1");SetButton(Icon.Cancel, "取消", FACodeEnum.Cancel, tbButtons,"GridPanel6");

break;#endregion

#region 保存//保存

case FACodeEnum.Save:SetButton(Icon.PageSave, "保存", FACodeEnum.Save, Toolbar1, "GridPanel1");

SetButton(Icon.PageSave, "保存", FACodeEnum.Save, tbButtons, "GridPanel6");break;

#endregioncase FACodeEnum.New:

break;#region 退回

//退回case FACodeEnum.Reject:

SetButton(Icon.PageBack, "退回", FACodeEnum.Reject, Toolbar1, "GridPanel1");SetButton(Icon.PageBack, "退回", FACodeEnum.Reject, tbButtons, "GridPanel6");

break;#endregion

#region 等待//等待

case FACodeEnum.Wait:SetButton(Icon.PackageGo, "等待", FACodeEnum.Wait, Toolbar1, "GridPanel1");

SetButton(Icon.PackageGo, "等待", FACodeEnum.Wait, tbButtons, "GridPanel6");break;

#endregion#region 看护

//看护case FACodeEnum.Notice:

SetButton(Icon.NoteGo, "看护", FACodeEnum.Notice, Toolbar1, "GridPanel1");SetButton(Icon.NoteGo, "看护", FACodeEnum.Notice, tbButtons, "GridPanel6");

break;#endregion

//编辑case FACodeEnum.Edit:

break;#region 提交

//提交case FACodeEnum.Submit:

SetButton(Icon.PageAdd, "提交", FACodeEnum.Submit, Toolbar1, "GridPanel1");SetButton(Icon.PageAdd, "提交", FACodeEnum.Submit, tbButtons, "GridPanel6");

break;#endregion

#region 批准//批准

case FACodeEnum.Approve:SetButton(Icon.Accept, "批准", FACodeEnum.Approve, Toolbar1, "GridPanel1");

SetButton(Icon.PageAdd, "批准", FACodeEnum.Approve, tbButtons, "GridPanel6");break;

#endregiondefault:

break;}

}}

}//TODO:后期改为稀有据则显示,无数据不显示

if (userinfo.RoleCode == "Signingmember"){

Store4.AutoLoad = true;GridPanel4.Hidden = false;

}

}}

///

/// 向对象条添加按钮///

///

图标///

文本

///

操作Code///

对象条

///

容器IDprivate static void SetButton(Icon icon, string text, FACodeEnum facode, Toolbar toolbar, string _panelName)

{if (toolbar == null) throw new ArgumentNullException("toolbar");

var _btn = new Ext.Net.Button{

Icon = icon,Text = text,

Listeners ={

Click ={

Handler =string.Format("toExcuteOperations(#{{{0}}}.getSelectionModel().get伟德国际1949手机版Selections(),'{1}');", _panelName, facode.ToString())

}}

};//设置Click事故的Handler,用于操作所选项。操作参数(所选记录集、操作Code)

if (toolbar.Items.Count > 0)toolbar.Items.Add(new ToolbarSeparator());

toolbar.Items.Add(_btn);}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: