|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Две заплатки для ASPxGridView (элемент управления из библиотеки Developer Express, диапазон версий 7.2.2.0 ... 7.2.5.0) |
|
Дата:
|
04 December 2007 |
|
Описание: |
1-я заплатка лечит от синдрома порчи русских букв, 2-я позволяет добавить detailGrid в masterGrid с помощью раздельного кода. Вообще, надо сказать, элементы управления DevEx, созданные под вэб, больше походят на бета-версию, так как нет-нет, да обнаруживаются ошибки, нарушающие функциональность и сильно осложняющие программирование вэб-страницы, содержащей Dev-Ex-элементики. |
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=219]Две заплатки для ASPxGridView (элемент управления из библиотеки Developer Express, диапазон версий 7.2.2.0 ... 7.2.5.0)[/CODEPOST] |
| Оценка: |
Проголосовало 12 посетителей, средняя оценка 1.58 |
| Оценить: |
|
1 /* Примечание:
2 * при работе с DevEx запаситесь терпением, так как философия работы
3 * c DevEx-элементами управления отличается от общепринятой философии
4 * работы со стандартными элементами управления Microsoft:
5 * если Microsoft-элементы оптимизированы для работы в раздельном коде,
6 * то DevEx-элементы управления оптимизированы для html-разметки :(
7 */
8 public partial class DevExWebPage : System.Web.UI.Page
9 {
10 #region Заплатка DevEx от порчи русских букв
11 protected override void InitializeCulture()
12 {
13 string cp = Page.Request.Params["__CALLBACKPARAM"];
14 if (!string.IsNullOrEmpty(cp))
15 {
16 byte[] ua = Request.ContentEncoding.GetBytes(cp);
17 byte[] ba = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, Request.ContentEncoding, ua);
18 string s = new string(Request.ContentEncoding.GetChars(ba));
19 Type nvcType = Page.Request.Form.GetType();
20 nvcType.InvokeMember("IsReadOnly", BindingFlags.NonPublic | BindingFlags.SetProperty | BindingFlags.FlattenHierarchy | BindingFlags.Instance, null, Page.Request.Form, new object[] { false });
21 nvcType.InvokeMember("IsReadOnly", BindingFlags.NonPublic | BindingFlags.SetProperty | BindingFlags.FlattenHierarchy | BindingFlags.Instance, null, Page.Request.Params, new object[] { false });
22 Page.Request.Form["__CALLBACKPARAM"] = s;
23 Page.Request.Params["__CALLBACKPARAM"] = s;
24 }
25 base.InitializeCulture();
26 }
27 #endregion Заплатка DevEx от порчи русских букв
28 #region Заплатка DevEx от неработоспособности процедуры masterGrid.Templates.DetailRow.InstantiateIn(detailGrid). Вместо этого используйте masterGrid.Templates.DetailRow = new MyTemplate(detailGrid).
29 private class MyTemplate : ITemplate
30 {
31 private DevExpress.Web.ASPxGridView.ASPxGridView oGrid;
32 /// <summary>
33 /// Конструктор по умолчанию не используйте, он ничего не даст.
34 /// </summary>
35 public MyTemplate()
36 {
37 this.oGrid = new DevExpress.Web.ASPxGridView.ASPxGridView();
38 }//end new()
39 /// <summary>
40 /// Единственная перегрузка, которой следует воспользоваться.
41 /// </summary>
42 /// <param name="oGrid">Внутренний грид.</param>
43 public MyTemplate(DevExpress.Web.ASPxGridView.ASPxGridView oGrid)
44 {
45 this.oGrid = oGrid;
46 }//end new(oGrid)
47 public void InstantiateIn(System.Web.UI.Control container)
48 {
49 Panel oPanel = new Panel();
50 oPanel.Width = Unit.Percentage(100);
51 oPanel.Style.Add("OVERFLOW", "auto");
52 oPanel.Controls.Add(oGrid);
53 container.Controls.Add(oPanel);
54 }//end void InstantiateIn
55 }//end class MyTemplate
56 #endregion Заплатка DevEx от неработоспособности процедуры masterGrid.Templates.DetailRow.InstantiateIn(detailGrid). Вместо этого используйте masterGrid.Templates.DetailRow = new MyTemplate(detailGrid).
57
58 // Добавьте сюда Ваш код.
59
60 }//DevExWebPage
61 |
| Вернуться к списку исходников в категории Общие вопросы программирования на ASP.NET |
|
|
 |
 |
 |
 |
|
|