powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Список с кирилическими полями
9 сообщений из 9, страница 1 из 1
Список с кирилическими полями
    #38427579
Skif Swarogich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно сабж.
Имеется список, из которого нужно сделать выборку. Имена столбцов изначально были заданы кирилицей и вообще создавались через сайт.
Мне нужно при помощи GridView отобразить часть столбцов, но увы, говорит, что нет таких столбцов... Проверка показывает, что проблема в кирилице
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VisualWebPart1.ascx.cs" Inherits="DRVebPart.VisualWebPart1.VisualWebPart1" %>

<asp:label runat="server" text="Label" id="ListCount"></asp:label>
<asp:gridview runat="server" id="drview">
    <EmptyDataTemplate>
        Сегодня юбиляров нет</EmptyDataTemplate>

</asp:gridview>


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
protected void Page_Load(object sender, EventArgs e)
        {
            SPWeb mySite = SPContext.Current.Web;
            String myList = "Сотрудники";
            SPListItemCollection listItems = mySite.Lists[myList].Items;
            //SPListItem it = list.Fiel

            int itemCount = listItems.Count;
            ListCount.Text = itemCount.ToString();
            drview.DataSource = listItems.GetDataTable();
            drview.DataBind();
        }


Вот что отображается при таком подходе:

А вот как список выглядит в оригинале:


itemCount.["Фамилия"] тоже не срабатывает :(
Подскажите, как обойти сей глюк?
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427581
Skif Swarogich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинки, что то маленькие загрузились. повторяю:
Первая

Вторая
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427588
chel_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Skif Swarogich,

Это не баг, это фича:). Если вы заводите поле с кириллическими символами, то получаете у него внутреннее имя как результат энкодинга. Как этого избежать.
1. В интерфейсе. Заводите поле с английским именем, а затем его переименовываете как вам нравится. При этом DisplayName сменится на русское,а все другие наименования будут английские.
2. Сделать поле в SPD, затем импортировать его в студию и там уже дать правильный DisplayName. А далее Deploy и профит
3. К полям можно обращаться по их Guid. Не всегда подходит этот путь доступен, но тем не менее.


Ну и наконец напоследок, зачем для вывода выборки по списку серверный код:) XsltListViewWebPart и ContentByQueryWebpart есть для таких случаев.
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427609
chel_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Skif Swarogich,

Ну и еще по коду- он сразу сломается, если переименовать список:) А это может сделать любой человек с доступом Full Access. Получение через гиуд лучше, но может сломаться после операции экспорта-импорта узла. Списочек лучше всего получать через
Код: c#
1.
SPUrlUtility.CombineUrl(web.Url,listUrl);
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427763
Skif Swarogich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chel_2000Skif Swarogich,

Это не баг, это фича:). Если вы заводите поле с кириллическими символами, то получаете у него внутреннее имя как результат энкодинга. Как этого избежать.
1. В интерфейсе. Заводите поле с английским именем, а затем его переименовываете как вам нравится. При этом DisplayName сменится на русское,а все другие наименования будут английские.
2. Сделать поле в SPD, затем импортировать его в студию и там уже дать правильный DisplayName. А далее Deploy и профит
3. К полям можно обращаться по их Guid. Не всегда подходит этот путь доступен, но тем не менее.

Увы, таких списков - вагон и маленькая тележка. Делал другой человек. Иначе он не умеет.

chel_2000Ну и наконец напоследок, зачем для вывода выборки по списку серверный код:) XsltListViewWebPart и ContentByQueryWebpart есть для таких случаев.

Эх, я тока начинаю :) Столько умных слов :) Попробую. Спасибо.
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427775
chel_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Skif Swarogich,

Просто представьте объем проблем, с которым столкнетесь. Скорее всего проще переделать правильно, чем поддерживать говнокод дальше. Ибо рано или поздно его надо будет мигрировать на другую версию. А это та еще задача.
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38427786
chel_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Skif Swarogich,

Еще по маленькому - код будет дико тормозить, если в списочке будет тысяч 5 записей
Код: sql
1.
2.
3.
4.
5.
SPListItemCollection listItems = mySite.Lists[myList].Items;
            //SPListItem it = list.Fiel

            int itemCount = listItems.Count;
            ListCount.Text = itemCount.ToString();



Вообще любое обращение к коллекций Items - очень дорогая операция. Из приличных мест за такую жуть увольняют:)
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38429389
Фотография Rb-Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chel_2000Вообще любое обращение к коллекций Items - очень дорогая операция. Из приличных мест за такую жуть увольняют:)

А если timer должен проходить по всем элементам, как выкручиваться?
...
Рейтинг: 0 / 0
Список с кирилическими полями
    #38429718
chel_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rb-Sr,

ContentIterator
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Список с кирилическими полями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]