powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с Repeater.
15 сообщений из 15, страница 1 из 1
Проблемы с Repeater.
    #38261129
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, господа, застрял на Repeater -е.
Вопрос следующий: Как в разметке указать в качестве источника данных Коллекцию?
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261170
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_Mark, в разметке через ObjectDataSource
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261186
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileCrass_Mark, в разметке через ObjectDataSource Сделал так
автор<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetList" TypeName="Tutorial.VoceListComponent"></asp:ObjectDataSource>


<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
<HeaderTemplate>
<div><h1> Count </h1></div>
</HeaderTemplate>
<ItemTemplate>
<%# Eval("id")%>
<%# Eval("title")%>
<%# Eval("rating")%>
<%# Eval("viewCount")%>
</ItemTemplate>
<FooterTemplate>
<hr />
</FooterTemplate>
</asp:Repeater>


ПИшет следующее
Не удается найти тип объекта данных, указанный в свойстве TypeName ObjectDataSource 'ObjectDataSource1'.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.InvalidOperationException: Не удается найти тип объекта данных, указанный в свойстве TypeName ObjectDataSource 'ObjectDataSource1'.

Ошибка источника:

Не ясно почему так, указал же Tutorial.VoceListComponent
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261195
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_Mark, возможные варианты
1) неполное имя типа - то есть пространство имен пропущено. Решение - указать полное имя типа
2) у тебя тип проекта web site и поэтому страница не видит типы из других файлов. Решение - перевести проект на web application
3) неправильное имя типа. Возможно у тебя нет класса с именем Tutorial.VoceListComponent. Решение - подставить имя существующего типа и не забыть убедиться что у него есть метод GetList
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261207
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileCrass_Mark, возможные варианты
1) неполное имя типа - то есть пространство имен пропущено. Решение - указать полное имя типа
2) у тебя тип проекта web site и поэтому страница не видит типы из других файлов. Решение - перевести проект на web application
3) неправильное имя типа. Возможно у тебя нет класса с именем Tutorial.VoceListComponent. Решение - подставить имя существующего типа и не забыть убедиться что у него есть метод GetList Да у меня web site, но перевести его на web application я не могу. Можно ли в файле разметки указать для контрола <asp:ObjectDataSource ID="Ods_Articles" runat="server"
SelectMethod="GetAllArticles" TypeName="BLL">
</asp:ObjectDataSource> не указывать TypeName? Не совсем понял какой атрибут использовать в ObjectDataSource для указания коллекции в качестве источника данных? Да и есть ли способы взаимодействия разных ассембли между собой?
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261493
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_Mark ,

Repeater.DataSource = List<ObjactClass>;
Repeater.DataBind();
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38261825
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_MarkНе совсем понял какой атрибут использовать в ObjectDataSource для указания коллекции в качестве источника данных?
В TypeName указывается имя типа, в SelectMethod имя метода из этого типа. Этот метод и должен возвращать коллекцию. Если вдруг не устраивает ObjectDataSource, то можно присвоить значение свойству DataSource класса Repeater в code-behind файле.

Crass_MarkДа и есть ли способы взаимодействия разных ассембли между собой?
Тебе надо задать себе другой вопрос - какие сборки создает .NET для моего приложения? Дело в том, что для проектов web site используется автоматическая модель компиляции при которой страницы и классы могут оказаться в разных сборках компилируемых по мере необходимости. Т.к. эти сборки создаются уже после развертываниия сайта, а не этапе разработки, то у нас нет возможности поставить на них reference. Следовательно нужно искать способ собрать все типы в одну или несколько известных сборок. Самый простой способ это использовать проект Web Application. Раз тебе это не подходит, то читай статью Precompiling Your Website .
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38262419
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708Crass_Mark ,

Repeater.DataSource = List<ObjactClass>;
Repeater.DataBind(); Спасибо, помогло!
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38262433
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileCrass_MarkНе совсем понял какой атрибут использовать в ObjectDataSource для указания коллекции в качестве источника данных?
В TypeName указывается имя типа, в SelectMethod имя метода из этого типа. Этот метод и должен возвращать коллекцию. Если вдруг не устраивает ObjectDataSource, то можно присвоить значение свойству DataSource класса Repeater в code-behind файле.

Crass_MarkДа и есть ли способы взаимодействия разных ассембли между собой?
Тебе надо задать себе другой вопрос - какие сборки создает .NET для моего приложения? Дело в том, что для проектов web site используется автоматическая модель компиляции при которой страницы и классы могут оказаться в разных сборках компилируемых по мере необходимости. Т.к. эти сборки создаются уже после развертываниия сайта, а не этапе разработки, то у нас нет возможности поставить на них reference. Следовательно нужно искать способ собрать все типы в одну или несколько известных сборок. Самый простой способ это использовать проект Web Application. Раз тебе это не подходит, то читай статью Precompiling Your Website . Спасибо, буду иметь ввиду!

У меня есть еще один вопрос связанный с рипитером. Есть таблица там 4 поля - id, title, discrption, voce. Т.е вывожу на клиент список функций , где voce хранит количество голосов, ну или кликов. На клиенте в каждой строке должна быть кнопка, при нажании на которую количество голосов в таблице должно обновлятся. Я не знаю как сделать обработчик бл* этих кнопок. Чисто логически строк может быть очень много, каждой кнопке обработчик не поставишь, значит он должен быть один. Но вот что в нём должно быть? Подскажи будь добр!
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38262449
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем про CommandName, CommandArgument и repeater.ItemCommand
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38262799
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuчитаем про CommandName, CommandArgument и repeater.ItemCommand Заработало, спасибо!
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38262921
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чет перестало работать, откат не помог.
Код: c#
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.
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand" >

<HeaderTemplate>   
  <hr/>
</HeaderTemplate>  
     
<ItemTemplate>  
<div class="nk-horizontal-divider-gray"></div>
<div  class="nk-support-faqs-tab nk-support-faqs-tab-white">
	<h2 style="padding-bottom: 12px;"><%# Eval("TitleQ")%><span class="nk-search-document-type"> - Вопросы и ответы Nokia</span>
	</h2>
	<div class="nk-support-faqs-plus"></div>
	<div style="display: block;" class="nk-faq-feedback-average">
		<div class="nk-faq-feedback-text">Средняя оценка - <%# Eval("ViewCount")%></div>
		<div style="background-position: -52px 0px;" id="nk-faq-ratings-control-FA136387_ru_RU" class="nk-faq-stars"></div>
	</div>
</div>

 <div>
     <asp:Button ID="Button1" runat="server" Text="Button" CommandName="AddProduct" CommandArgument='<%# Eval("ID") %>' />
 </div>
          
  
</ItemTemplate>  
  
<FooterTemplate>  
  <hr/>
</FooterTemplate>  
</asp:Repeater>



а вот обработчик
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public void Repeater1_ItemCommand(object source, CommandEventArgs e)
        {

            Label1.Text = "Была нажата кнопка " + e.CommandArgument.ToString();

            BXFilter filter = new BXFilter();
            
            filter.Add(new BXFilterItem(BXIBlockElement.Fields.IBlock.ID, BXSqlFilterOperators.Equal, 3));
            
            filter.Add(new BXFilterItem(BXIBlockElement.Fields.ID, BXSqlFilterOperators.Equal, e.CommandArgument));
            
            BXOrderBy orderBy = new BXOrderBy();

            orderBy.Add(BXIBlockElement.Fields.Sort, BXOrderByDirection.Asc);

            BXIBlockElementCollection elementnew = BXIBlockElement.GetList(filter, orderBy);
            
            elementnew[0].PreviewText = elementnew[0].PreviewText + "11111111";
            
            elementnew[0].CustomPublicValues["VOTERS"] = (Convert.ToInt32(elementnew[0].CustomPublicValues["VOTERS"].ToString()) + 1);

            elementnew[0].Update();
            
        }



Проблема в том что при клике на кнопку событие не отрабатывает. В чем может быть проблема?
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38263134
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_Mark,

.. в букваре вот так написано
Код: c#
1.
2.
3.
4.
void R1_ItemCommand(Object Sender, RepeaterCommandEventArgs e) {        
          Label2.Text = "The " + ((Button)e.CommandSource).Text + " button has just been clicked; 
";
       }  



http://msdn.microsoft.com/ru-ru/library/system.web.ui.webcontrols.repeater.itemcommand.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38263193
Crass_Mark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikCrass_Mark,

.. в букваре вот так написано
Код: c#
1.
2.
3.
4.
void R1_ItemCommand(Object Sender, RepeaterCommandEventArgs e) {        
          Label2.Text = "The " + ((Button)e.CommandSource).Text + " button has just been clicked; 
";
       }  



http://msdn.microsoft.com/ru-ru/library/system.web.ui.webcontrols.repeater.itemcommand.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3 Да уж разобрался) Не в этом дело было
...
Рейтинг: 0 / 0
Проблемы с Repeater.
    #38263229
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crass_Mark Да уж разобрался) Не в этом дело было

..ну, не в этом, так не в этом ... я в подобных случаях использовал OnCommand, а не OnItemCommand, но это кому как нравится ... :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с Repeater.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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