2013-06-21 5 views
1

У меня есть проблема с использованием компонента GridView из DevExpress на Visual Studio 2010.DevExpress Grid View Error

То, что я хочу сделать, это действительно просто. У меня есть кнопка, и когда она нажимается, я хочу показать такое сообщение: «Столбец X в строке 0 в gridview имеет значение Y».

код кнопки очень просто тоже:

Protected Sub b_test_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_test.Click 
    Dim aux As String 
    aux = t_tickets.GetRowValues(0, "numero_de_ticket").ToString 

    MsgBox(aux) 
End Sub 

Этот код работает отлично, НО он имеет странное поведение.

Если я выбираю первую строку в gridview, она отлично работает. Но если я выбираю строку с различной, когда кнопка нажата, я получаю следующее сообщение об ошибке:

System.Data.MissingPrimaryKeyException: A primary key field specified via the KeyFieldName property is not found in the underlying data source. Make sure the field name is spelled correctly 

Я всегда выбираю первый ряд. Я не знаю, почему я получаю эту ошибку, когда я выбираю другую строку.

Может ли кто-нибудь мне помочь?

ответ

1

Я думаю, что ваша проблема не в функции Click. Вы выполняете обратную передачу, которая пытается отправить выбранную строку на сервер, тогда как эта строка не имеет ключей.

Вы должны проверить свой ASPX-файл, чтобы увидеть KeyFieldName и проверить, что поле идентификации источника данных является тем, что вы объявили.

<dx:ASPxGridView runat="server" Id="t_tickets" KeyFieldName="Id"> 
... 
... 
... 
</dx:ASPxGridView> 

Я думаю, что вы обнаружите, что это ошибочно в вашем случае. Это означает, что то, что вы указали как KeyFieldName, не является элементом свойств объекта данных, который соответствует строке вашей сетки. (Или это не является частью оператора select в источнике данных)

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

  • Нет связанных вопросов^_^