Добавить div условно говорит, что контейнер имени не существует в текущем контексте

Я хочу условно добавить HTML div в управление ротатором. Я использую следующий код, но он говорит: «Контейнер имени не существует в текущем контексте» в DataBinder.Eval(Container.DataItem, "COL_ID")

<telerik:RadRotator ID="rtrList" runat="server" Width="830px" Height="100px"
                FrameDuration="10" RotatorType="ButtonsOver" ScrollDuration="450" WrapFrames="true"
                ItemWidth="100" ItemHeight="80" >
                <ItemTemplate>
                    <asp:HiddenField ID="hdfId" runat="server" Value='<%# Eval("COL_ID") %>' />

                    <div id="div" runat="server" title='<%# Eval("NAME") %>' class="widget_item">

                        <span>
                            <%# Eval("TITLE") %>
                        </span>
                    </div>

                <%if (Convert.ToInt32(DataBinder.Eval(Container.DataItem, "COL_ID")) % 2 == 0)

                   {%>

                    <div></div>

                <%} %>    

                </ItemTemplate>


            </telerik:RadRotator>

Пожалуйста, направьте меня, где я ошибаюсь. поскольку я впервые использую DataBinder.Eval и Container.DataItem.

С уважением, Каш


person Kash    schedule 11.01.2012    source источник


Ответы (2)


Ошибка означает, что этот элемент данных не существует в элементе, привязанном к элементу управления.

Например. Если вы выполняли привязку к таблице, в таблице должен быть столбец с именем «Col_ID», иначе это приведет к ошибке.

Можете ли вы добавить свой код для привязки элемента управления к источнику данных?

person OpenR    schedule 11.01.2012
comment
привязка с использованием свойства DataSource. rtrList.DataSource = список; Я получаю ошибку во время разработки - person Kash; 11.01.2012
comment
Как вы составляете свой список? - person OpenR; 12.01.2012
comment
список представляет собой DataTable, который заполняется из базы данных. - person Kash; 12.01.2012
comment
@Kash - вы подтвердили, что DataTable содержит столбец с именем COL_ID? Просто запустите отладку, остановитесь на строке, где вы выполняете привязку, и проверьте таблицу данных. - person OpenR; 12.01.2012

Используйте этот синтаксис вместо if:

<%# (Convert.ToInt32(DataBinder.Eval(Container.DataItem, "COL_ID")) % 2 == 0) ? "<div></div>" : "" %>
person user489998    schedule 16.09.2014