|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Редактирование групп (codebehind) |
|
Дата:
|
05 November 2002 |
|
Описание: |
В дополнение к статье "Создание системы авторизации, основанной на ролях, в ASP.NET приложении" привожу код codebehind редактирования групп. Классы бизнес логики не расшифровываются, я надеюсь кто захочет - разберется :) |
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=24]Редактирование групп (codebehind)[/CODEPOST] |
| Оценка: |
Проголосовало 1 посетителей, средняя оценка 5.00 |
| Оценить: |
|
1 using System;
2 using System.Collections;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Web;
7 using System.Web.SessionState;
8 using System.Web.UI;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.HtmlControls;
11
12 namespace mff.admin.admin
13 {
14 /// <summary>
15 /// Summary description for admins.
16 /// </summary>
17 public class groups : System.Web.UI.Page
18 {
19 protected System.Web.UI.WebControls.LinkButton lbtnAddNew;
20 protected System.Web.UI.WebControls.ListBox lbMembers;
21 protected System.Web.UI.WebControls.ListBox lbAllUsers;
22 protected System.Web.UI.WebControls.Button btnAdd;
23 protected System.Web.UI.WebControls.Button btnRemove;
24 protected System.Web.UI.HtmlControls.HtmlTable tblEditGroup;
25 protected System.Web.UI.WebControls.ListBox lbAllPages;
26 protected System.Web.UI.WebControls.Button btnRemovePage;
27 protected System.Web.UI.WebControls.Button btnAddPage;
28 protected System.Web.UI.WebControls.ListBox lbAllowPages;
29 protected System.Web.UI.WebControls.DataGrid dgMain;
30
31 public groups()
32 {
33 Page.Init += new System.EventHandler(Page_Init);
34 }
35
36 private void Page_Load(object sender, System.EventArgs e)
37 {
38 if(!IsPostBack)
39 {
40 Cache.Remove("admin_groups");
41 bindData();
42 ViewState["add"] = false;
43 }
44 if(dgMain.SelectedIndex == -1)
45 tblEditGroup.Visible = false;
46 }
47
48 private void Page_Init(object sender, EventArgs e)
49 {
50 //
51 // CODEGEN: This call is required by the ASP.NET Web Form Designer.
52 //
53 InitializeComponent();
54 }
55
56 #region Web Form Designer generated code
57 /// <summary>
58 /// Required method for Designer support - do not modify
59 /// the contents of this method with the code editor.
60 /// </summary>
61 private void InitializeComponent()
62 {
63 this.dgMain.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMain_CancelCommand);
64 this.dgMain.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMain_EditCommand);
65 this.dgMain.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dgMain_SortCommand);
66 this.dgMain.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMain_UpdateCommand);
67 this.dgMain.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMain_DeleteCommand);
68 this.dgMain.SelectedIndexChanged += new System.EventHandler(this.dgMain_SelectedIndexChanged);
69 this.lbtnAddNew.Click += new System.EventHandler(this.lbtnAddNew_Click);
70 this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
71 this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
72 this.btnAddPage.Click += new System.EventHandler(this.btnAddPage_Click);
73 this.btnRemovePage.Click += new System.EventHandler(this.btnRemovePage_Click);
74 this.Load += new System.EventHandler(this.Page_Load);
75
76 }
77 #endregion
78
79 private void bindData()
80 {
81 DataView dv = (DataView) Cache["admin_groups"];
82 if(dv == null)
83 {
84 mff_components.admin_groups admin = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
85 dv = admin.List();
86 Cache.Insert("admin_groups", dv, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);
87 }
88 if (ViewState["sort"] != null)
89 dv.Sort = (string) ViewState["sort"];
90 dgMain.DataSource = dv;
91 dgMain.DataKeyField = "group_uid";
92 dgMain.DataBind();
93 }
94
95 private void lbtnAddNew_Click(object sender, System.EventArgs e)
96 {
97 DataView dv = (DataView) Cache["admin_groups"];
98 if(dv == null)
99 {
100 mff_components.admin_groups admin = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
101 dv = admin.List();
102 Cache.Insert("admin_groups", dv, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);
103 }
104 dv.AddNew();
105 ViewState["add"] = true;
106 dgMain.DataSource = dv;
107 dgMain.EditItemIndex = dv.Count - 1;
108 dgMain.DataBind();
109 }
110
111 private void dgMain_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
112 {
113 ViewState["sort"] = e.SortExpression;
114 bindData();
115 }
116
117 private void dgMain_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
118 {
119 mff_components.admin_groups admin = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
120 DataRowView drv = (DataRowView) e.Item.DataItem;
121 if((bool) ViewState["add"])
122 admin.New();
123 else
124 admin.Get((int) dgMain.DataKeys[e.Item.ItemIndex]);
125 admin.Name = ((TextBox) e.Item.Cells[0].Controls[0]).Text;
126 admin.Set((bool) ViewState["add"]);
127 ViewState["add"] = false;
128 Cache.Remove("admin_groups");
129 dgMain.EditItemIndex = -1;
130 bindData();
131 }
132
133 private void dgMain_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
134 {
135 dgMain.EditItemIndex = -1;
136 bindData();
137 }
138
139 private void dgMain_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
140 {
141 dgMain.EditItemIndex = e.Item.ItemIndex;
142 dgMain.SelectedIndex = -1;
143 bindData();
144 }
145
146 private void dgMain_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
147 {
148 mff_components.admin_groups admin = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
149 admin.Delete((int) dgMain.DataKeys[e.Item.ItemIndex]);
150 Cache.Remove("admin_groups");
151 bindData();
152 }
153
154 private void dgMain_SelectedIndexChanged(object sender, System.EventArgs e)
155 {
156 tblEditGroup.Visible = true;
157 mff_components.admin_groups group = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
158 mff_components.administrators admin = new mff_components.administrators(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
159 mff_components.admin_pages page = new mff_components.admin_pages(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
160 DataView dv = group.ListUsers((int) dgMain.DataKeys[dgMain.SelectedIndex]);
161 lbMembers.DataSource = dv;
162 lbMembers.DataBind();
163
164 DataView dv1 = admin.List();
165 foreach(DataRowView drv in dv)
166 {
167 dv1.RowFilter = "admin_uid = " + drv["admin_uid"].ToString();
168 dv1.Delete(0);
169 dv1.RowFilter = "";
170 }
171 lbAllUsers.DataSource = dv1;
172 lbAllUsers.DataBind();
173 group.Get((int) dgMain.DataKeys[dgMain.SelectedIndex]);
174 dv = page.List();
175 dv1 = page.List();
176 dv.RowFilter = "GroupsList like '%" + group.Name + ",%'";
177 foreach(DataRowView drv in dv)
178 {
179 dv1.RowFilter = "page_id = " + drv["page_id"].ToString();
180 dv1.Delete(0);
181 dv1.RowFilter = "";
182 }
183 lbAllowPages.DataSource = dv;
184 lbAllowPages.DataBind();
185 lbAllPages.DataSource = dv1;
186 lbAllPages.DataBind();
187 }
188
189 private void btnAdd_Click(object sender, System.EventArgs e)
190 {
191 mff_components.administrators admin = new mff_components.administrators(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
192 int i = 0;
193 while(i < lbAllUsers.Items.Count)
194 {
195 ListItem li = lbAllUsers.Items[i];
196 if(li.Selected)
197 {
198 lbMembers.Items.Add(li);
199 lbAllUsers.Items.Remove(li);
200 li.Selected = false;
201 admin.AddTo(Int32.Parse(li.Value), (int) dgMain.DataKeys[dgMain.SelectedIndex]);
202 }
203 else
204 i++;
205 }
206 }
207
208 private void btnRemove_Click(object sender, System.EventArgs e)
209 {
210 mff_components.administrators admin = new mff_components.administrators(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
211 int i = 0;
212 while(i < lbMembers.Items.Count)
213 {
214 ListItem li = lbMembers.Items[i];
215 if(li.Selected)
216 {
217 lbAllUsers.Items.Add(li);
218 lbMembers.Items.Remove(li);
219 li.Selected = false;
220 admin.RemoveFrom(Int32.Parse(li.Value), (int) dgMain.DataKeys[dgMain.SelectedIndex]);
221 }
222 else
223 i++;
224 }
225
226 }
227
228 private void btnAddPage_Click(object sender, System.EventArgs e)
229 {
230 mff_components.admin_pages page = new mff_components.admin_pages(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
231 int group_id = (int) dgMain.DataKeys[dgMain.SelectedIndex];
232 string groupName;
233 mff_components.admin_groups group = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
234 group.Get(group_id);
235 groupName = group.Name;
236 int i = 0;
237 while(i < lbAllPages.Items.Count)
238 {
239 ListItem li = lbAllPages.Items[i];
240 if(li.Selected)
241 {
242 lbAllowPages.Items.Add(li);
243 lbAllPages.Items.Remove(li);
244 li.Selected = false;
245 page.Get(Int32.Parse(li.Value));
246 page.GroupsList = String.Format("{0}{1},", page.GroupsList, groupName);
247 page.Set(false);
248 }
249 else
250 i++;
251 }
252 Cache.Remove("admin_pages");
253 }
254
255 private void btnRemovePage_Click(object sender, System.EventArgs e)
256 {
257 mff_components.admin_pages page = new mff_components.admin_pages(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
258 int group_id = (int) dgMain.DataKeys[dgMain.SelectedIndex];
259 string groupName;
260 mff_components.admin_groups group = new mff_components.admin_groups(System.Configuration.ConfigurationSettings.AppSettings["DSN"]);
261 group.Get(group_id);
262 groupName = group.Name;
263 int i = 0;
264 while(i < lbAllowPages.Items.Count)
265 {
266 ListItem li = lbAllowPages.Items[i];
267 if(li.Selected)
268 {
269 lbAllPages.Items.Add(li);
270 lbAllowPages.Items.Remove(li);
271 li.Selected = false;
272 page.Get(Int32.Parse(li.Value));
273 page.GroupsList = page.GroupsList.Replace(groupName + ",", "");
274 page.Set(false);
275 }
276 else
277 i++;
278 }
279 Cache.Remove("admin_pages");
280 }
281 }
282 }
283 |
| Вернуться к списку исходников в категории Общие вопросы программирования на ASP.NET |
|
|
 |
 |
 |
 |
|
|