#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 Показанная здесь разметка находится внутри самого представления сетки. Добавляю больше макияжа для ясности..