GridView에서 필드를 업데이트하려고 시도했지만 시도가 성공하지 못했습니다. 이것은 내가 가진 오류입니다 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 이 줄을 계속 깨고있다. dt.Rows(row.DataItemIndex)("TicketID") = (CType(row.FindControl("TicketID"), TextBox)).ToString
초심자 인 나는 이것을 어떻게 고쳐야할지 모른다. 어떤 도움이라도 대단히 감사합니다. 코드 숨김NullReferenceException - 필드 업데이트 필요
:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As New DataTable("historyList")
dt.Columns.Add("TicketID", GetType(Integer))
dt.Columns.Add("DateCreated", GetType(DateTime))
dt.Columns.Add("FullName", GetType(String))
dt.Columns.Add("TicketType", GetType(String))
dt.Columns.Add("Subject", GetType(String))
dt.Columns.Add("Message", GetType(String))
dt.Columns.Add("Status", GetType(String))
For i = 0 To 6
Dim tableRow = dt.NewRow()
tableRow("TicketID") = i
tableRow("DateCreated") = Now()
tableRow("FullName") = i.ToString()
tableRow("TicketType") = i.ToString()
tableRow("Subject") = i.ToString()
tableRow("Message") = i.ToString()
tableRow("Status") = i.ToString()
dt.Rows.Add(tableRow)
Next
Session("dt") = dt
BindData()
End Sub
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
GridView1.EditIndex = e.NewEditIndex
BindData()
End Sub
Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
GridView1.EditIndex = 1
BindData()
End Sub
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
Dim dt = CType(Session("dt"), DataTable)
'if your current DataSource be in Session
Dim row As GridViewRow = GridView1.Rows(e.RowIndex)
dt.Rows(row.DataItemIndex)("TicketID") = (CType(row.FindControl("TicketID"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("DateCreated") = (CType(row.FindControl("DateCreated"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("FullName") = (CType(row.FindControl("FullName"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("TicketType") = (CType(row.FindControl("TicketType"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("Subject") = (CType(row.FindControl("Subject"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("Message") = (CType(row.FindControl("Message"), TextBox)).ToString
dt.Rows(row.DataItemIndex)("Status") = (CType(row.FindControl("Status"), TextBox)).ToString
Session("dt") = dt
GridView1.EditIndex = 1
BindData()
End Sub
Private Sub BindData()
'GridView1.DataSource = Session("dt")
GridView1.DataBind()
End Sub
'rows.DataItemIndex'의 값이 데이터 테이블의 유효한 색인인지 확인하십시오. –
@JoelCoehoorn : 사실, MSDN 예제에서'rows.DataItemIndex'를 사용했습니다. – Esther