ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)

我们新增记录功能的步骤如下:
1.新建FORM
FORM的建立是用ExtJS实现在GridForProjectLists.js文件中的。注意的是,我同时做了个ExtJS的ComboBox
ComboBox实现:

1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)varstoreDept=newExt.data.Store(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)proxy:newExt.data.HttpProxy(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)url:"../Projects/JsonDataSource/DepartmentInfo.aspx"
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
),
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//createreaderthatreadstheprojectrecords
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)reader:newExt.data.JsonReader(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){},[
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){name:'Text',type:'string'},
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){name:'Value',type:'string'}
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)])
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)storeDept.load();
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)varstoreStatus=newExt.data.Store(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)proxy:newExt.data.HttpProxy(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)url:"../Projects/JsonDataSource/GetProjectStatus.aspx"
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
),
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//createreaderthatreadstheprojectrecords
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)reader:newExt.data.JsonReader(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){},[
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){name:'NAME',type:'string'},
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){name:'CODE',type:'string'}
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)])
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)storeStatus.load();

这里的实现了两个ComboBox,一个是部门选择,一个是状态选择。我这里只说其中一个数据源的写法,即GetProjectStatus.aspx。
新建GetProjectStatus.aspx文件,代码如下:

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)GetProjectStatus.aspx
<!--<br /><br /> <br /><br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /><br /> <a href="http://www.CodeHighlighter.com/" title="http://www.CodeHighlighter.com/">http://www.CodeHighlighter.com/</a><br /><br /> <br /><br /> -->1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="GetProjectStatus.aspx.cs"Inherits="Web.Projects.JsonDataSource.GetProjectStatus"%>
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)<%=strJsonSource%>
1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem;
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Data;
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Configuration;
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Collections;
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Linq;
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web;
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.Security;
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI;
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.WebControls;
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.WebControls.WebParts;
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.HtmlControls;
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Xml.Linq;
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingBusinessObject.Projects;
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingDatabase;
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingWeb.Components;
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)namespaceWeb.Projects.JsonDataSource
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)publicpartialclassGetProjectStatus:System.Web.UI.Page
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)protectedstringstrJsonSource=string.Empty;
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)protectedvoidPage_Load(objectsender,EventArgse)
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)GetJsonSouceString();
24ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

25ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
26ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//这些不用我注释了吧,呵呵
27ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)privatevoidGetJsonSouceString()
28ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
29ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ProjectDictDataContextdb=newProjectDictDataContext();
30ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)varquery=frompindb.PROJECT_DICTs
31ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)wherep.DICT_TYPE=="003"
32ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)selectnewExtJS与.NET结合开发实例(Grid之新增——Form提交篇){p.NAME,p.CODE};
33ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)strJsonSource=query.ToJSON();
34ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

35ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

36ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

37ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)

接下来,回到GridForProjectLists.js文件上,我们实现FORM,代码如下:

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Form表单实现
<!--<br /><br /> <br /><br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /><br /> <a href="http://www.CodeHighlighter.com/" title="http://www.CodeHighlighter.com/">http://www.CodeHighlighter.com/</a><br /><br /> <br /><br /> -->1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)varaddForm=newExt.FormPanel(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'column',
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)columnWidth:.5,
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'form',
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)border:false,
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合同编号',
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'contractno',
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)allowBlank:false
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;项目名称',
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'projectname',
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)allowBlank:false,
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)blankText:'项目名称不能为空!'
23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
24ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.ComboBox(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
25ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所属部门',
26ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'dept',
27ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)store:storeDept,
28ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)displayField:'Text',
29ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)valueField:'Value',
30ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)hiddenName:'deptno',
31ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
32ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//typeAhead:true,
33ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)mode:'remote',
34ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)triggerAction:'all',
35ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)emptyText:'请选择部门ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)',
36ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)selectOnFocus:true//,
37ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//applyTo:'local-states'
38ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
)
39ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇),ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
40ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
41ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;项目经理',
42ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
43ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'projectmanager',
44ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)allowBlank:false
45ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
46ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
47ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.DateField(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
48ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;预计开始时间',
49ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'startTime',
50ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200
51ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//allowBlank:false
52ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
),
53ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.DateField(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
54ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实际开始时间',
55ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'RealStartTime',
56ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200
57ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//allowBlank:false
58ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
),
59ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.ComboBox(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
60ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当前状态',
61ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'Status',//用来取text
62ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)store:storeStatus,
63ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)displayField:'NAME',
64ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)valueField:'CODE',
65ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
66ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)hiddenName:'StatusNo',//用来取value
67ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//typeAhead:true,
68ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)mode:'remote',
69ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)triggerAction:'all',
70ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)emptyText:'请选择项目状态ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)',
71ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)selectOnFocus:true
72ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
)
73ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)]
74ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

75ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
76ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
77ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)columnWidth:.5,
78ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'form',
79ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)border:false,
80ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[
81ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
82ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
83ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;项目编号',
84ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
85ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'projectno',
86ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)allowBlank:false,
87ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)blankText:'项目编号不能为空!'
88ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
89ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
90ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;项目简称',
91ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
92ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'projectalias'
93ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
94ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//右边空一格
95ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
96ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
97ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'textfield',
98ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开发经理',
99ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200,
100ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'projectleader'
101ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
102ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.DateField(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
103ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;预计结束时间',
104ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'endTime',
105ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200
106ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//allowBlank:false
107ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
),
108ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newExt.form.DateField(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
109ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实际结束时间',
110ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)name:'RealEndTime',
111ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:200
112ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//allowBlank:false
113ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
)
114ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)]
115ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

116ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
]
117ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);

在第一篇文章中,提到ADD的按钮需要实现showAddPanel的方法,代码如下:

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)新增的界面
<!--<br /><br /> <br /><br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /><br /> <a href="http://www.CodeHighlighter.com/" title="http://www.CodeHighlighter.com/">http://www.CodeHighlighter.com/</a><br /><br /> <br /><br /> -->1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)functionshowAddPanel()ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//createthewindowonthefirstclickandreuseonsubsequentclicks
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newwin=newExt.Window(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'window',
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)buttonAlign:'right',
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)closable:true,
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'fit',
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)modal:'true',
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:700,
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)height:450,
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)closeAction:'hide',
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)plain:true,
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:newExt.TabPanel(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)activeTab:0,
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:683,
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)height:253,
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)defaults:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){bodyStyle:'padding:10px'},
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'tabpanel',
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)plain:true,
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)defaults:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){frame:true},
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)closable:true,
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)title:'基本信息',
24ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'column',
25ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)cls:'x-plain',
26ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[
27ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)addForm
28ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)]
29ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
30ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)title:'跟踪信息',
31ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'fit',
32ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)cls:'x-plain',
33ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:[
34ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)gdNewProjectTracks
35ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)]
36ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
37ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)title:'备注',
38ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)cls:'x-plain',
39ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)layout:'fit',
40ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)items:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
41ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)xtype:'htmleditor',
42ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)id:'memo',
43ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)fieldLabel:'备注'
44ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

45ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
]}
),
46ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)buttons:[ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
47ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)id:'btnSave',
48ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)text:'保存',
49ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)handler:doSave,
50ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)disabled:false
51ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
52ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)text:'取消',
53ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)handler:function()ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
54ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newwin.hide();
55ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

56ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
]
57ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
58ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newwin.show(this);
59ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

Form实现的最后一步是提交按钮的实现:

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Submit
<!--<br /><br /> <br /><br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /><br /> <a href="http://www.CodeHighlighter.com/" title="http://www.CodeHighlighter.com/">http://www.CodeHighlighter.com/</a><br /><br /> <br /><br /> -->1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)functiondoSave()
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Ext.MessageBox.show(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)msg:'正在保存数据,请稍侯ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)',
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)progressText:'正在保存中ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)',
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)width:300,
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)wait:true,
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)waitConfig:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){interval:200},
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)icon:'ext-mb-save',
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)nimEl:'btnSave'
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)addForm.getForm().submit(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)url:'../Projects/OperProjects/AddProjectBaseInfo.aspx',
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)method:'POST',
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)success:function(form,action)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Ext.MessageBox.hide();
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Ext.MessageBox.alert('提示','数据保存成功!');
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)newwin.hide();
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ds.load(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){params:ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){start:0,limit:25}});
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
,
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)failure:function(form,action)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Ext.MessageBox.hide();
24ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)Ext.MessageBox.show(ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
25ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)title:'错误',
26ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)msg:'数据保存失败!',
27ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)buttons:Ext.Msg.OK,
28ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)icon:Ext.MessageBox.ERROR
29ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
30ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

31ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}
);
32ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

2.实现新增记录的功能
从刚才的doSave方法中发现,新增功能在AddProjectBaseInfo.aspx页面中实现,代码如下:

1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="
AddProjectBaseInfo.aspx.cs"Inherits="Web.Projects.OperProjects.
AddProjectBaseInfo
"%>
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)<%=strJson%>

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)AddProjectBaseInfo.aspx.cs
<!--<br /><br /> <br /><br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /><br /> <a href="http://www.CodeHighlighter.com/" title="http://www.CodeHighlighter.com/">http://www.CodeHighlighter.com/</a><br /><br /> <br /><br /> -->1ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem;
2ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Collections;
3ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Configuration;
4ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Data;
5ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Linq;
6ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web;
7ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.Security;
8ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI;
9ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.HtmlControls;
10ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.WebControls;
11ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Web.UI.WebControls.WebParts;
12ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingSystem.Xml.Linq;
13ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)usingBusinessObject.Projects;
14ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)namespaceWeb.Projects.OperProjects
15ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
16ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)publicpartialclassAddProjectBaseInfo:System.Web.UI.Page
17ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
18ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)protectedstringstrJson=string.Empty;
19ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)protectedvoidPage_Load(objectsender,EventArgse)
20ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
21ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)AddProject();
22ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

23ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
24ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)privatevoidAddProject()
25ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
26ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)//这里我就不校验数据正确性了
27ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringProjectName=Request.Form["projectname"];
28ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringContractNo=Request.Form["contractno"];
29ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringProjectNo=Request.Form["projectno"];
30ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringDeptNo=Request.Form["deptno"];
31ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringPM=Request.Form["projectmanager"];
32ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringProjectAlias=Request.Form["projectalias"];
33ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringPL=Request.Form["projectleader"];
34ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)DateTimeStartTime=DateTime.Parse(Request.Form["startTime"]);
35ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)DateTimeEndTime=DateTime.Parse(Request.Form["endTime"]);
36ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)DateTimeRealStartTime=DateTime.Parse(Request.Form["RealStartTime"]);
37ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)DateTimeRealEndTime=DateTime.Parse(Request.Form["RealEndTime"]);
38ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringStatus=Request.Form["StatusNo"];
39ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)try
40ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
41ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ProjectBaseInfoDataContextdb=newProjectBaseInfoDataContext();
42ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)PROJECT_BASE_INFOproject=newPROJECT_BASE_INFO();
43ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_ALIAS=ProjectAlias;
44ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_CURRENT_STATUS=Status;
45ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_DEPT_NO=DeptNo;
46ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_FINISH_DATE=EndTime;
47ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_LEADER=PL;
48ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_MANAGER=PM;
49ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_NAME=ProjectName;
50ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_NO=ProjectNo;
51ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_REAL_FINISH_DATE=RealEndTime;
52ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_REAL_START_DATE=RealStartTime;
53ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)project.PROJECT_START_DATE=StartTime;
54ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)db.PROJECT_BASE_INFOs.InsertOnSubmit(project);
55ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)db.SubmitChanges();
56ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)strJson=@"{success:true}";
57ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

58ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)catch(Exceptionex)
59ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)ExtJS与.NET结合开发实例(Grid之新增——Form提交篇){
60ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)stringstrMsg=ex.Message;
61ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)strJson=@"{success:false}";
62ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

63ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

64ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
65ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

66ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)}

67ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)

需要注意的是AddProjectBaseInfo.aspx.cs中需要返回JSON格式的success的true/false给doSave方法中调用。至此,新增功能已实现。
实现效果图如下:
ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)

ExtJS与.NET结合开发实例(Grid之新增——Form提交篇)
Form方式的编辑功能不再提供,大家可以参考新增功能来实现,欲知ExtJS的其它功能,且听下回分解……