Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте элемента управления привязкой данных в Gridview

#c# #asp.net #gridview

Вопрос:

Я пытаюсь построить представление сетки с несколькими столбцами в нем. Но я сталкиваюсь с этой ошибкой «Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте элемента управления привязкой данных».

введите описание изображения здесь

Я не совсем понимаю, почему это происходит. Я попытался изменить синтаксис Eval(«pid») на (DataBinder.Eval(Контейнер.Элемент данных,»pid»)) но безрезультатно. Чего мне может не хватать? Вот мой код aspx для одного столбца из нескольких других столбцов.

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
                    ShowFooter="false" ShowHeaderWhenEmpty="true"
                    DataKeyNames="pid"
                    OnRowCommand="GridView1_RowCommand"
                    OnRowEditing="GridView1_RowEditing"
                    OnRowCancelingEdit="GridView1_RowCancelingEdit"
                    OnRowUpdating="GridView1_RowUpdating"
                    AllowPaging="True" PageSize="30"
                    Width="100%" AllowSorting="True"
                    OnRowDataBound="GridView1_RowDataBound">    

                    <Columns>                           
                       <asp:TemplateField HeaderText="Project Number" ItemStyle-HorizontalAlign="center">
                            <ItemTemplate>                          
                                <asp:Label ID="lblPID" Text='<%# Eval("pid")  %>' Width="130px" runat="server"></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:Label ID="txtProjectNumber" Text='<%# Eval("pid") %>' ToolTip='<%# Eval("pid") %>' Width="130px" runat="server"></asp:Label>
                            </EditItemTemplate>                               
                        </asp:TemplateField>
                   </Columns>
</asp:GridView>
 

Любая помощь высоко ценится, так как я застрял на этой проблеме с давних пор. Заранее спасибо.

Комментарии:

1. Я могу только предположить, что ваши теги или что-то еще испорчено. Как уже отмечалось, %# работает внутри gridview, listview и даже ретранслятора. Значит, вышеприведенная разметка не должна находиться внутри представления сетки? Вам нужно разместить больше разметки gridview, но эта разметка должна быть внутри gv

2. @AlbertD.Kallal Показанная здесь разметка находится внутри самого представления сетки. Добавляю больше макияжа для ясности..