2015-12-09 4 views
0

Я пытаюсь отправить выбранную запись gridview на следующую страницу, чтобы заполнить элементы управления, используя Session с datatable. Я добавил точки останова и вижу, что данные datatable заполняются, но, похоже, они не отправляются на следующую страницу. Пожалуйста помоги.Переменная SESSION не отправляет данные на следующую страницу с datatable

Page один VB код

Protected Sub grdClientlist_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles grdClientlist.SelectedIndexChanged 

    If Not Me.IsPostBack Then 
     Dim dt As DataTable = New DataTable() 
     dt.Columns.AddRange(New DataColumn(20) {New DataColumn("clientid"), New DataColumn("name"), New DataColumn("surname"), New DataColumn("type"), New DataColumn("status"), New DataColumn("assistant"), New DataColumn("companyname"), New DataColumn("telephoneno"), New DataColumn("mobileno"), New DataColumn("faxno"), New DataColumn("email"), New DataColumn("streetaddress"), New DataColumn("streetaddress2"), New DataColumn("streettown"), New DataColumn("streetcountry"), New DataColumn("streetpostalcode"), New DataColumn("postaladdress"), New DataColumn("postaladdress2"), New DataColumn("postaltown"), New DataColumn("postalcountry"), New DataColumn("pospostalcode")}) 
     dt.Rows.Add(grdClientlist.SelectedRow.Cells(0).Text, grdClientlist.SelectedRow.Cells(1).Text, grdClientlist.SelectedRow.Cells(2).Text, grdClientlist.SelectedRow.Cells(3).Text, grdClientlist.SelectedRow.Cells(4).Text, grdClientlist.SelectedRow.Cells(5).Text, grdClientlist.SelectedRow.Cells(6).Text, grdClientlist.SelectedRow.Cells(7).Text, grdClientlist.SelectedRow.Cells(8).Text, grdClientlist.SelectedRow.Cells(9).Text, grdClientlist.SelectedRow.Cells(10).Text, grdClientlist.SelectedRow.Cells(11).Text, grdClientlist.SelectedRow.Cells(12).Text, grdClientlist.SelectedRow.Cells(13).Text, grdClientlist.SelectedRow.Cells(14).Text, grdClientlist.SelectedRow.Cells(15).Text, grdClientlist.SelectedRow.Cells(16).Text, grdClientlist.SelectedRow.Cells(17).Text, grdClientlist.SelectedRow.Cells(18).Text, grdClientlist.SelectedRow.Cells(19).Text, grdClientlist.SelectedRow.Cells(20).Text) 

     Session("client") = dt 
     Response.Redirect("ClientDetails.aspx") 


    End If 


End Sub 

Page 2 VB код

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    If Session("dt") IsNot Nothing Then 
     Dim dtclient As DataTable = New DataTable() 
     dtclient = CType(Session("client"), DataTable) 

     txtClientNumber.Text = dtclient.Rows.Item("clientid").ToString 
     txtName.Text = dtclient.Rows.Item("name").ToString 
     txtSurname.Text = dtclient.Rows.Item("surname").ToString 
     cboClientType.Text = dtclient.Rows.Item("Type").ToString 
     cboClientStatus.Text = dtclient.Rows.Item("status").ToString 
     txtAssisstant.Text = dtclient.Rows.Item("assistant").ToString 
     txtCompanyName.Text = dtclient.Rows.Item("companyname").ToString 
     txtContactTel.Text = dtclient.Rows.Item("telephoneno").ToString 
     txtMobileNo.Text = dtclient.Rows.Item("mobileno").ToString 
     txtFaxNo.Text = dtclient.Rows.Item("faxno").ToString 
     txtEmailAddress.Text = dtclient.Rows.Item("email").ToString 
     txtStreetAddress.Text = dtclient.Rows.Item("streetaddress").ToString 
     txtStreetAddressL2.Text = dtclient.Rows.Item("streetaddress2").ToString 
     txtStreetAddressSuburb.Text = dtclient.Rows.Item("streettown").ToString 
     txtStreetCountry.Text = dtclient.Rows.Item("streetcountry").ToString 
     txtStreetPostalCode.Text = dtclient.Rows.Item("streetpostalcode").ToString 
     txtPostalAddress.Text = dtclient.Rows.Item("postaladdress").ToString 
     txtPostalAddressL2.Text = dtclient.Rows.Item("postaladdress2").ToString 
     txtPostalAddressSuburb.Text = dtclient.Rows.Item("postaltown").ToString 
     txtPostalCountry.Text = dtclient.Rows.Item("postalcountry").ToString 
     txtPostalPostalCode.Text = dtclient.Rows.Item("pospostalcode").ToString 
    End If 

End Sub 

Я попытался индексированию строки, а также не индексированию строки как тот же результат.

ответ

0
If Session("dt") IsNot Nothing Then 

Изменить эту строку следующим образом:

If Session("client") IsNot Nothing Then 
+0

Привет, я изменил это, но все тот же результат ничего не заполняет? – Terence

+0

Хорошо, получилось, что он работает, очистил все файлы cookie и кажется, что он работает и сейчас, спасибо за помощь. – Terence

+0

@Terence приветствуется. И закройте свой вопрос, пожалуйста. – Khazratbek

0

Код для второй страницы ссылается на переменную сеанса неправильным именем. В вашей первой странице вы делаете:

Session("client") = dt

Это присваивает DataTable dt к переменной client сессии. Вернитесь к этим данным со второй страницы (как уже указывалось) вам нужно будет ссылаться на Session("client"), что и теперь содержит ваши данные. Исходная переменная dt типа DataTable была уничтожена, как только браузер был сделан с 1-й страницей.

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