2012-03-30 4 views
1

Вот приложение:VB/ASP.NET, значение ячейки доступа GridView к переменной

Имеет вид сетки с некоторыми строками. Когда пользователь нажимает на редактирование в веб-форме, он открывает пару полей для редактирования. То, что я пытаюсь сделать, - это когда RowUpdating срабатывает, проверяет значение одного из полей в виде сетки и проверяет его в пределах определенного диапазона, а затем отменяет, если его вне этого диапазона.

У меня на самом деле почти все эти рамки сделаны, за исключением того, что я не могу получить значение из поля в GridView.

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

Любые предложения? Вот мои последние:

Private Sub gvCourses_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvCourses.RowUpdating 
    Dim x As String 
    x = gvCourses.SelectedRow.Cells[3].Text 
    MsgBox(x) ' Just a check to see if I get the variable to display the correct value, not part of the final app 

Я также пробовал различные варианты вышеизложенного, ни одна из которых не работала. Тот, что выше, я получаю System.Web.UI.WebControls.TableCellCollection не может быть преобразован в String.

Я видел несколько примеров, но никто из них не работает. У кого-нибудь есть предложения?

Спасибо.

ответ

2

Попытка изменения этой линии.

x = TryCast(gvCourses.SelectedRow.Cells(3).Controls(1), TextBox).Text 

Когда GridView находится в режиме обновления он делает текстовое поле (если он связан с текстовыми данными) и клетка добавляет его в ControlCollection.

+0

Если я делаю это, я получаю: 1. «TextBox» - это тип и не может использоваться как выражение. 2. «)». – kaylendarr

+0

@kaylendarr изменено ... PLS попробуйте еще раз. – scartag

+0

.TableCellCollection не может быть преобразован в «String» и «identifier expected», где находится [3]. \ – kaylendarr

1

Вы пробовали следующее ?:

Dim x As String 
x = gvCourses.Rows[e.RowIndex].Cells[3].Text; 
+0

Да. Я получил .GridViewRowCollection не может быть преобразован в 'String', а идентификатор в скобках отсутствует закрытие ']' (а это не так). – kaylendarr

0

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

Оригинальная проблема: - «То, что я пытаюсь сделать, это когда RowUpdating срабатывает, проверяет значение одного из полей в виде сетки и проверяет его в пределах определенного диапазона, а затем отменяет, если его внешний из этого диапазона "

Решение:.

Private Sub gvCourses_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvCourses.RowUpdating 
    Dim x As Integer = e.NewValues.Item("Column_Name") 
     ' The above grabs the value from the text box of the specified column and assigns it to x. I can then use x to do the validation I noted above. 

КАЖЕТСЯ У меня был логический вопрос и пытаются использовать SelectedRows и т.д., когда я был полностью покинуть базу для того, что я пытался сделать.

Особая благодарность scartag за ваши несколько попыток помочь и Деннису. Спасибо вам обоим!

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

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