Программно обновить привязанный флажок в GridView, используя asp: ButtonField в ASP.NET 2005 - PullRequest
2 голосов
/ 06 января 2012

GridView привязан к таблице доступа, но я хочу обновить флажок, используя asp: ButtonField. Лучшее, что я смог сделать, это заменить флажок на строковое значение. Ниже приведен код, который у меня сейчас есть:

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
    If e.CommandName = "check" Then
        'Enable Editing on the GridView
        GridView1.EditIndex = GridView1.SelectedIndex
        'Assign value to the row selected
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        'Assign selected gridview row
        Dim selectedRow As GridViewRow = GridView1.Rows(index)
        'Assign checkbox cell as table cell
        Dim selectedCell As TableCell = selectedRow.Cells(0)

        'Assign a value to the checkbox, **but instead is replacing the checkbox**
        selectedCell.Text = "True"
    End If
End Sub

Ответы [ 2 ]

4 голосов
/ 06 января 2012

Я думаю, вам нужно использовать .FindControl().

GridViewCell - это не то же самое, что CheckBox элемент управления внутри него.Ваш код должен выглядеть примерно так:

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
    If e.CommandName = "check" Then
        'Enable Editing on the GridView
        GridView1.EditIndex = GridView1.SelectedIndex
        'Assign value to the row selected
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        'Assign selected gridview row
        Dim checkBox As CheckBox = GridView1.Rows(index).FindControl("checkBoxIdGoesHere")

        checkBox.Checked = true 'or false or whatever based on your command.
    End If
End Sub
1 голос
/ 06 января 2012

У меня была своя доля проблем с доступом к элементам управления из GridViews.Я решил нечто подобное около месяца назад.Предполагая, что ваш элемент управления флажок является единственным в этой ячейке, вы можете попробовать что-то вроде этого:

'Assign a value to the checkbox
CType(GridView1.Rows(index).Cells(0).Controls(0), CheckBox).Checked = True

Попробуйте и посмотрите, работает ли он.Если нет, отправьте ответ, и мы можем еще раз взглянуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...