<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="PM_Base.aspx.cs" Inherits="PM_Base"
2
EnableEventValidation="false" %>
3
4
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
<html xmlns="http://www.w3.org/1999/xhtml">
6
<head runat="server">
7
<title>基本信息</title>
8
</head>
9
<body>
10
<form id="form1" runat="server">
11
<!--导航事件按钮-->
12
<table cellpadding="0" cellspacing="0" width="100%">
13
<tr>
14
<td align="right" style="height: 25px;" nowrap="nowrap">
15
<input type="hidden" id="HiddenID" name="HiddenID" runat="server" />
16
<input id="btnView" runat="server" type="button" value="查看" style="width: 50px; height: 20px;"
17
class="ClassBtn" onclick="return View();" />
18
<asp:Button ID="btnSearch" runat="server" Text="查询" Enabled="false" Width="50px"
19
Height="20px" OnClick="btnSearch_Click" />
20
<input id="btnAdd" runat="server" type="button" value="添加" style="width: 50px; height: 20px;"
21
class="ClassBtn" onclick="return Add();" />
22
<input id="btnEdit" runat="server" type="button" value="修改" style="width: 50px; height: 20px;"
23
class="ClassBtn" onclick="return Edit();" />
24
<asp:Button ID="btnDelete" runat="server" Text="删除" Width="50px" Height="20px" OnClick="btnDelete_Click"
25
OnClientClick="javascript:return ( checkSelect() && confirm('警告:删除将无法恢复!/n确认删除吗?') );" />
26
<asp:Button ID="btnPrint" runat="server" Text="打印" Width="50px" Height="20px" OnClick="btnToExcel_Click" />
27
<asp:Button ID="btnOut" runat="server" Text="导出" Width="50px" Height="20px" OnClick="btnToExcel_Click" />
28
</td>
29
</tr>
30
</table>
31
<asp:GridView ID="GridView1" SkinID="gvClass2" runat="server" Width="100%" DataKeyNames="ID"
32
AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" OnDataBound="GridView1_DataBound"
33
AllowSorting="True" OnSorting="GridView1_Sorting" AllowPaging="True" PageSize="10"
34
OnPageIndexChanging="GridView1_PageIndexChanging">
35
<PagerTemplate>
36
<table width="100%">
37
<tr>
38
<td width="50%" align="left">
39
<asp:Label ID="MessageLabel" ForeColor="Blue" Text="页码:" runat="server" />
40
<asp:DropDownList ID="PageDropDownList" AutoPostBack="true" OnSelectedIndexChanged="PageDropDownList_SelectedIndexChanged"
41
runat="server" />
42
<asp:LinkButton CommandName="Page" CommandArgument="First" ID="linkBtnFirst" runat="server">首页</asp:LinkButton>
43
<asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="linkBtnPrev" runat="server">上一页</asp:LinkButton>
44
<asp:LinkButton CommandName="Page" CommandArgument="Next" ID="linkBtnNext" runat="server">下一页</asp:LinkButton>
45
<asp:LinkButton CommandName="Page" CommandArgument="Last" ID="linkBtnLast" runat="server">尾页</asp:LinkButton>
46
</td>
47
<td width="50%" align="right">
48
<asp:Label ID="CurrentPageLabel" ForeColor="Blue" runat="server" />
49
</td>
50
</tr>
51
</table>
52
</PagerTemplate>
53
<Columns>
54
<asp:TemplateField>
55
<ItemTemplate>
56
<input id="check" runat="server" type="checkbox" value='<%# Eval("ID") %>' />
57
</ItemTemplate>
58
<HeaderTemplate>
59
<input id="checkAll" title="全选" onclick="javascript:CheckAll(this);" runat="server"
60
type="checkbox" />
61
</HeaderTemplate>
62
<ItemStyle Width="5%" />
63
</asp:TemplateField>
64
<asp:BoundField DataField="Name" HeaderText="名称" SortExpression="Name">
65
<ItemStyle Width="30%" HorizontalAlign="Left" />
66
</asp:BoundField>
67
<asp:BoundField DataField="Description" HeaderText="描述" SortExpression="Description">
68
<ItemStyle HorizontalAlign="Left" />
69
</asp:BoundField>
70
</Columns>
71
</asp:GridView>
72
<asp:Label ID="Message" runat="server" ForeColor="Red"></asp:Label>
73
</form>
74
</body>
75
</html>
76
77
<script language="javascript">
78
function $(s)
{return document.getElementById(s);}
79
function isNull(_sVal)
{return (_sVal == "" || _sVal == null || _sVal == "undefined");}
80
//获取地址栏参数
81
function GetURL(name)
82

{
83
var URLParams = new Array();
84
var aParams = document.location.search.substr(1).split('&');
85
for (i=0; i < aParams.length; i++)
86
{
87
var aParam = aParams[i].split('=');
88
URLParams[aParam[0]] = aParam[1];
89
}
90
//取得传过来的name参数
91
return URLParams[name];
92
}
93
94
var tgs;
95
var tmp_background_val;
96
function tog(n,flags)
97

{
98
if (tgs)
{
99
tgs.style.background= tmp_background_val ;
100
}
101
n.style.background= '#99ccff' ;
102
tmp_background_val=flags;
103
tgs=n;
104
}
105
106
function GetRowIndex(obj)
107

{
108
$('<%=HiddenID.ClientID %>').value = obj;
109
}
110
111
var HiddenID;
112
function checkSelect()
113

{
114
HiddenID=$('<%=HiddenID.ClientID %>').value;
115
if(isNull(HiddenID))
116
{
117
alert("请选择一条记录!");
118
}
119
return !isNull(HiddenID);
120
}
121
122
function CheckAll(spanChk)//CheckBox全选
123

{
124
var oItem = spanChk.children;
125
var theBox=(spanChk.type=="checkbox")?spanChk:spanChk.children.item[0];
126
xState=theBox.checked;
127
elm=theBox.form.elements;
128
for(i=0;i<elm.length;i++)
129
if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
130
{
131
if(elm[i].checked!=xState)
132
elm[i].click();
133
}
134
}
135
//---------------------------------------------------------
136
//查看
137
function View()
138

{
139
if(checkSelect())
140
{
141
var url="PM_BaseEdit.aspx?ID=" + HiddenID + "&tableName=" + GetURL("tableName");
142
winOpen(url);
143
}
144
}
145
//添加
146
function Add()
147

{
148
var url="PM_BaseAdd.aspx?tableName=" + GetURL("tableName");
149
winOpen(url);
150
}
151
//编辑
152
function Edit()
153

{
154
if(checkSelect())
155
{
156
var url="PM_BaseEdit.aspx?ID=" + HiddenID + "&tableName=" + GetURL("tableName");
157
winOpen(url);
158
}
159
}
160
161
//弹出打开新页面-------------------------------------------
162
function winOpen(url)
163

{
164
var sFeatures='height=400, width=650, top=100, left=200,toolbar=0, menubar=0, scrollbars=auto, resizable=1, location=0, status=0';
165
window.open(url,"PM_Base",sFeatures);
166
}
167
168
function showDialog(url)
169

{
170
var sFeatures = "dialogHeight:400px;dialogWidth:500px;resizeable:no;help:no;status:no";
171
var obj=showModalDialog(url,window,sFeatures);
172
}
173
</script>


1
using System;
2
using System.Data;
3
using System.Data.OleDb;
4
using System.Data.SqlClient;
5
using System.Configuration;
6
using System.Collections;
7
using System.Web;
8
using System.Web.Security;
9
using System.Web.UI;
10
using System.Web.UI.WebControls;
11
using System.Web.UI.WebControls.WebParts;
12
using System.Web.UI.HtmlControls;
13
using System.Web.Caching;
14
using Framework.Components;
15
16
public partial class PM_Base : Framework.UI.PageBase
17

{
18
Page事件#region Page事件
19
MX.PM.BLL.Progress myBiz = new MX.PM.BLL.Progress();
20
string tableName;
21
22
protected void Page_Load(object sender, EventArgs e)
23
{
24
tableName = base.GetUrl("tableName");
25
//首先要进行权限判断
26
if (!string.IsNullOrEmpty(tableName))
27
{
28
if (!Page.IsPostBack)
29
{
30
if (!Framework.Globals.CurrentPrincipal.HasPermission((int)Framework.Helper.ProjectManage.BaseBrowse))
31
{
32
Framework.AppException exception = new Framework.AppException("对不起,您无权操作此页面!");
33
GridView1.Visible = false;
34
btnView.Disabled = true;
35
}
36
if (!Framework.Globals.CurrentPrincipal.HasPermission((int)Framework.Helper.ProjectManage.BaseSelect))
37
{
38
btnSearch.Enabled = false;
39
btnPrint.Enabled = false;
40
btnOut.Enabled = false;
41
}
42
if (!Framework.Globals.CurrentPrincipal.HasPermission((int)Framework.Helper.ProjectManage.BaseAdd))
43
{
44
btnAdd.Disabled = true;
45
}
46
if (!Framework.Globals.CurrentPrincipal.HasPermission((int)Framework.Helper.ProjectManage.BaseUpdate))
47
{
48
btnEdit.Disabled = true;
49
}
50
if (!Framework.Globals.CurrentPrincipal.HasPermission((int)Framework.Helper.ProjectManage.BaseDelete))
51
{
52
btnDelete.Enabled = false;
53
}
54
// 在此处放置查询代码
55
string strTableName = "PM_Progress";
56
this.btnSearch.OnClientClick = "javascript:window.showModalDialog('../Tools/AjaxGeneralSearch/AjaxSeachPage.aspx?table=" + strTableName + "','','dialogWidth:500px; dialogHeight:400px; status:0; help:0; center:1; scroll:0; resizable:1;');";
57
}
58
59
GetData();//重新获取操作后的数据源
60
if (!Page.IsPostBack)
61
{
62
BindGrid();//绑定GridView,为删除服务
63
}
64
}
65
}
66
67
#endregion
68
69
GridView#region GridView
70
属性#region 属性
71
/**//// <summary>
72
/// 获取或设置数据源
73
/// </summary>
74
public DataTable DataSource
75
{
76
get
77
{
78
if (ViewState["dataSource"] == null)
79
return null;
80
else
81
return (DataTable)ViewState["dataSource"];
82
}
83
set
84
{
85
ViewState["dataSource"] = value;
86
}
87
}
88
/**//// <summary>
89
/// 获取或设置排序方向
90
/// </summary>
91
public SortDirection Sort_Direction
92
{
93
get
94
{
95
if (ViewState["sortDirection"] == null)
96
return SortDirection.Ascending;
97
else
98
return (SortDirection)ViewState["sortDirection"];
99
}
100
set
101
{
102
ViewState["sortDirection"] = value;
103
}
104
}
105
/**//// <summary>
106
/// 获取或设置当前分页码
107
/// </summary>
108
public int CurrentPage
109
{
110
get
111
{
112
if (ViewState["CurrentPage"] == null)
113
return 0;
114
else
115
return (int)ViewState["CurrentPage"];
116
}
117
set
118
{
119
ViewState["CurrentPage"] = value;
120
}
121
}
122
#endregion
123
124
数据绑定#region 数据绑定
125
/**//// <summary>
126
/// 获取数据
127
/// </summary>
128
protected void GetData()
129
{
130
this.DataSource = myBiz.GetBase(tableName).Tables[0]; ;
131
}
132
133
/**//// <summary>
134
/// GridView 数据绑定
135
/// </summary>
136
private void BindGrid()
137
{
138
Message.Text = "";
139
GridView1.DataSource = this.DataSource;
140
GridView1.DataBind();
141
GridView1.PageIndex = CurrentPage;//设置当前页
142
}
143
144
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
145
{
146
if (e.Row.RowType == DataControlRowType.DataRow)
147
{
148
System.Web.UI.HtmlControls.HtmlInputCheckBox check = (System.Web.UI.HtmlControls.HtmlInputCheckBox)e.Row.FindControl("check");
149
string id = check.Value;
150
151
if (e.Row.RowIndex % 2 != 0)
152
e.Row.Attributes.Add("onclick", "GetRowIndex('" + id + "'),tog(this,'#EFF3FB')");
153
else
154
e.Row.Attributes.Add("onclick", "GetRowIndex('" + id + "'),tog(this,'#ffffff')");
155
}
156
}
157
#endregion
158
159
分页绑定#region 分页绑定
160
protected void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
161
{
162
GridViewRow pagerRow = GridView1.BottomPagerRow;
163
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
164
GridView1.PageIndex = pageList.SelectedIndex;
165
this.CurrentPage = pageList.SelectedIndex;
166
BindGrid();
167
}
168
169
protected void GridView1_DataBound(Object sender, EventArgs e)
170
{
171
if (this.DataSource.Rows.Count > 0)
172
{
173
GridViewRow pagerRow = GridView1.BottomPagerRow;
174
LinkButton linkBtnFirst = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnFirst");
175
LinkButton linkBtnPrev = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnPrev");
176
LinkButton linkBtnNext = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnNext");
177
LinkButton linkBtnLast = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnLast");
178
if (GridView1.PageIndex == 0)
179
{
180
linkBtnFirst.Enabled = false;
181
linkBtnPrev.Enabled = false;
182
}
183
else if (GridView1.PageIndex == GridView1.PageCount - 1)
184
{
185
linkBtnLast.Enabled = false;
186
linkBtnNext.Enabled = false;
187
}
188
else if (GridView1.PageCount <= 0)
189
{
190
linkBtnFirst.Enabled = false;
191
linkBtnPrev.Enabled = false;
192
linkBtnNext.Enabled = false;
193
linkBtnLast.Enabled = false;
194
}
195
DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
196
Label pageLabel = (Label)pagerRow.Cells[0].FindControl("CurrentPageLabel");
197
if (pageList != null)
198
{
199
for (int i = 0; i < GridView1.PageCount; i++)
200
{
201
int pageNumber = i + 1;
202
ListItem item = new ListItem(pageNumber.ToString() + "/" + GridView1.PageCount.ToString(), pageNumber.ToString());
203
if (i == GridView1.PageIndex)
204
{
205
item.Selected = true;
206
}
207
pageList.Items.Add(item);
208
}
209
}
210
if (pageLabel != null)
211
{
212
int currentPage = GridView1.PageIndex + 1;
213
pageLabel.Text = "当前页: " + currentPage.ToString() +
214
" / " + GridView1.PageCount.ToString();
215
}
216
}
217
}
218
#endregion
219
220
分页#region 分页
221
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
222
{
223
GridView1.PageIndex = e.NewPageIndex;
224
this.CurrentPage = e.NewPageIndex;//保存当前页码
225
BindGrid();
226
}
227
#endregion
228
229
排序#region 排序
230
/**//// <summary>
231
/// 排序
232
/// </summary>
233
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
234
{
235
SortGridView(ref GridView1, this.DataSource, e);
236
}
237
/**//// <summary>
238
/// 实现排序
239
/// </summary>
240
private void SortGridView(ref GridView gv, object dt, GridViewSortEventArgs e)
241
{
242
string sortDirection = "";
243
string sortExpression = e.SortExpression;
244
if (this.Sort_Direction == SortDirection.Ascending)
245
{
246
this.Sort_Direction = SortDirection.Descending;
247
sortDirection = "DESC";
248
}
249
else
250
{
251
this.Sort_Direction = SortDirection.Ascending;
252
sortDirection = "ASC";
253
}
254
DataView Source = new DataView((DataTable)dt);
255
Source.Sort = e.SortExpression + " " + sortDirection;
256
gv.DataSource = Source;
257
gv.DataBind();
258
}
259
260
#endregion
261
#endregion
262
263
按钮事件#region 按钮事件
264
查询#region 查询
265
protected void btnSearch_Click(object sender, EventArgs e)
266
{
267
GetData();
268
BindGrid();
269
}
270
#endregion
271
272
删除#region 删除
273
/**//// <summary>
274
/// 删除,用循环得到用户选择的CheckBox
275
/// </summary>
276
protected void btnDelete_Click(object sender, EventArgs e)
277
{
278
Message.Text = "";
279
string sID = "";
280
for (int i = 0; i < GridView1.Rows.Count; i++)
281
{
282
GridViewRow row = GridView1.Rows[i];
283
System.Web.UI.HtmlControls.HtmlInputCheckBox check = (System.Web.UI.HtmlControls.HtmlInputCheckBox)row.FindControl("check");
284
if (check.Checked)
285
{
286
sID += check.Value + ",";
287
}
288
}
289
if (sID.Length > 0)
290
{
291
//MX.Sys.DAL.Log log = new MX.Sys.DAL.Log(this.UserInfo.UserName, "删除数据表" + tableName + ",sID=" + sID);
292
myBiz.DeleteBase(tableName, sID);//截取结尾的逗号
293
Message.Text = "删除成功!";
294
GetData();
295
BindGrid();
296
}
297
else
298
{
299
Message.Text = "删除失败,请勾选要删除项!";
300
}
301
}
302
#endregion
303
304
导出 打印#region 导出 打印
305
public override void VerifyRenderingInServerForm(Control control)
306
{
307
// 为转 excel 出问题而加上的过程(一定加!!)// Confirms that an HtmlForm control is rendered for
308
}
309
310
protected void btnToExcel_Click(object sender, EventArgs e)
311
{
312
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
313
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
314
315
GridView1.AllowPaging = false;//取消分页
316
BindGrid();
317
318
GridView1.RenderControl(htmlWrite);
319
320
GridView1.AllowPaging = true;//恢复分页
321
BindGrid();
322
323
//---专用导出页面
324
PrintInfo info = new PrintInfo();
325
info.Title = "工程列表";
326
info.Orientation = true;
327
info.ShowTime = true;
328
info.Text = stringWrite.ToString();
329
ToPrint(info);
330
//---
331
}
332
/**//// <summary>
333
/// 打印
334
/// </summary>
335
private void ToPrint(PrintInfo info)
336
{
337
Session["ToExcel"] = info;//***用Session传递参数
338
339
string strURL = "../Tools/WebPrint";
340
string sFeatures = "height=600, width=800, top=0, left=50,toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, status=1";
341
string js = "window.open('{0}','print','{1}');";
342
js = string.Format(js, strURL, sFeatures);
343
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "print", js, true);
344
}
345
#endregion
346
#endregion
347
348
公共函数#region 公共函数
349
350
#endregion
351
352
}
353

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77



78



79



80

81

82



83

84

85

86



87

88

89

90

91

92

93

94

95

96

97



98



99

100

101

102

103

104

105

106

107



108

109

110

111

112

113



114

115

116



117

118

119

120

121

122

123



124

125

126

127

128

129

130



131

132

133

134

135

136

137

138



139

140



141

142

143

144

145

146

147



148

149

150

151

152

153



154

155



156

157

158

159

160

161

162

163



164

165

166

167

168

169



170

171

172

173

PM_Base.aspx.cs


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17



18


19

20

21

22

23



24

25

26

27



28

29



30

31



32

33

34

35

36

37



38

39

40

41

42

43



44

45

46

47



48

49

50

51



52

53

54

55

56

57

58

59

60

61



62

63

64

65

66

67

68

69


70


71


72

73

74

75



76

77



78

79

80

81

82

83

84



85

86

87

88


89

90

91

92



93

94



95

96

97

98

99

100

101



102

103

104

105


106

107

108

109



110

111



112

113

114

115

116

117

118



119

120

121

122

123

124


125


126

127

128

129



130

131

132

133


134

135

136

137



138

139

140

141

142

143

144

145



146

147



148

149

150

151

152

153

154

155

156

157

158

159


160

161



162

163

164

165

166

167

168

169

170



171

172



173

174

175

176

177

178

179



180

181

182

183

184



185

186

187

188

189



190

191

192

193

194

195

196

197

198



199

200



201

202

203

204



205

206

207

208

209

210

211



212

213

214

215

216

217

218

219

220


221

222



223

224

225

226

227

228

229


230


231

232

233

234



235

236

237


238

239

240

241



242

243

244

245



246

247

248

249

250



251

252

253

254

255

256

257

258

259

260

261

262

263


264


265

266



267

268

269

270

271

272


273


274

275

276

277



278

279

280

281



282

283

284

285



286

287

288

289

290



291

292

293

294

295

296

297

298



299

300

301

302

303

304


305

306



307

308

309

310

311



312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332


333

334

335

336



337

338

339

340

341

342

343

344

345

346

347

348


349

350

351

352

353
