通过行绑定事件在GridView中绑定数据时出错

时间:2017-08-01 12:03:18

标签: asp.net vb.net gridview

我在aspx页面中有以下gridview:

 Protected Sub gv1_RowCommand(sender As Object, e As GridViewCommandEventArgs)


    If e.CommandName = "Update" Then

                  //some code to update remarks//
                gv1.EditIndex = -1
                subBindDataGrid()

     End If

用户点击'编辑'使更新'的链接和'取消'链接可见。然后在文本框中输入备注并单击“更新”。将触发行命令事件,该事件将更新DB中针对该特定行中的条目的备注。同一事件调用绑定函数:

 Protected Sub gv1_OnRowDataBound(sender As Object, e As GridViewRowEventArgs)

        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim lblAdminRemarks As Label = DirectCast(e.Row.FindControl("lblAdminRemarks"), Label)
            Dim lnkReject As LinkButton = DirectCast(e.Row.FindControl("lnkbtnReject"), LinkButton)
            Dim lnkApprove As LinkButton = DirectCast(e.Row.FindControl("lnkbtnApprove"), LinkButton)
            Dim lnkEdit As LinkButton = DirectCast(e.Row.FindControl("lblEdit"), LinkButton)
            If DataBinder.Eval(e.Row.DataItem, "txtAdminRemarks").ToString().Trim = "Auto-Approved" Then
                lnkApprove.Visible = False
                lnkReject.Visible = False
                lnkEdit.Visible = False
            Else
                lnkbtnApprove.Visible = True
                lnkbtnReject.Visible = True
              End If 
        End If

subBindDataGrid()会触发以下rowbound事件,该事件会根据管理员备注隐藏按钮:

router.get('/GetCaseSupportDocument', function (req, res) {
  var MyJsonData = {
    DocId: parseInt(req.query.DocId) || 0
  };

 // updated the response
 request({
    url: 'http://somedomain/someurl', //URL to hit
    method: 'POST',
    json: MyJsonData
  }).pipe(res);

});

备注在数据库中更新。但是,绑定存在一些问题,而不是显示网格,页面将重定向到错误页面。在调试时,没有任何异常抛出。在'编辑命令中也会调用相同的事件。但是,功能在那里工作正常。请建议语法是否有问题。

1 个答案:

答案 0 :(得分:0)

我发现你没有在GridView静态定义上定义一个DataSourceID,请确保在subBindDataGrid过程中为GridView定义一个DataSource,否则它将在输入中有一个null数据源。