2012-05-07 2 views
0

При запуске страницы ASP.NET, containd код folloing, я получаю «DataBinding:„System.Data.DataRowView“не содержит свойство с именем„PKComplexID“» ошибкаDatabinding ошибка при использовании TemplateField

<asp:TemplateField HeaderText="Complex"> 
    <EditItemTemplate> 
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:RefahiConnectionString1 %>" 
      SelectCommand="SELECT [PKComplexID], [ComplexName] FROM RFH_Complex"> 
     </asp:SqlDataSource> 
     <asp:DropDownList ID="DDLComplex" runat="server" DataTextField="ComplexName" DataValueField="PKComplexID" 
      SelectedValue='<%# Bind("PKComplexID") %>' DataSourceID="SqlDataSource2"> 
     </asp:DropDownList> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label" runat="server" Text='<%# Bind("ComplexName") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Что в этом плохого?

+0

Я забыл упомянуть, что я использую DetailsView и DefaultMode = Edit. – Karadous

ответ

1

Не объявляйте элемент управления источником данных внутри шаблона; DropDownList не сможет найти элемент управления источником данных с соответствующим идентификатором.

Переместите элемент управления источником данных вне сетки, и вы должны быть настроены.

+0

Это не решило проблему. Я получаю ту же ошибку. У меня точно такой же код на другой странице. Все хорошо. – Karadous

+0

Опубликуйте обновленный код. На другой странице у вас есть элемент управления datasource, вложенный в шаблон элемента, и он работает? –

+0

Я нашел проблему. Вместо PKComplexID I uesd FKComplexID, который существует в основных полях sqlsatasource. – Karadous

Смежные вопросы