2016-04-10 3 views
2

Я работал над ASP.NET с помощью VB и столкнулся с проблемой, показывая выбранные данные из вида сетки в текстовое поле. Я не уверен, правильно ли я привязываю данные к текстовому поле или нет, вот мой код привязки данных к текстовому полю. Для представления сетки я просто выбираю из окна источника данных.Показать выбранные данные из GridView в TextBox ASP.NET VB

TextBox связывания данных код в ASPX:

<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox1" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox2" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox3" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox4" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox5" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox6" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox7" runat="server"></asp:TextBox> 
<asp:TextBox Text='<%# Bind("TextData")%>' ID="TextBox8" runat="server"></asp:TextBox> 

включить выделение на вид сетки, так что при выборе строки, его данные будут отображаться в текстовом поле.

Код для отображения в текстовом поле:

Imports System.Data.SqlClient 
Public Class Edit 
Inherits System.Web.UI.Page 
Public con As New SqlConnection("Data Source=localhost;Initial Catalog=Tuition_Information;Integrated Security=True") 
Public cmd As New Data.SqlClient.SqlCommand 

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

End Sub 
Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged 

End Sub 

Protected Sub OnSelectedIndexChanged(sender As Object, e As EventArgs) 
    Dim row As GridViewRow = GridView1.SelectedRow 
    TextBox1.Text = row.Cells("StudentID").Text 
    TextBox2.Text = row.Cells("StudentName").Text 
    TextBox3.Text = row.Cells("HomeAddress").Text 
    TextBox4.Text = row.Cells("ContactNumber").Text 
    TextBox5.Text = row.Cells("SubjectCode").Text 
    TextBox6.Text = row.Cells("SubjectName").Text 
    TextBox7.Text = row.Cells("ParentName").Text 
    TextBox8.Text = row.Cells("ParentContact").Text 
End Sub 
End Class 

Здесь мои страницы для зрения, я хочу показать данные в текстовом поле, так что я могу изменить его и обновление базы данных. Он также будет использоваться и при удалении. Но когда я нажимаю ссылку SELECT, она не отображает данные в текстовом поле.

Edit Pages View

Что я сделал не так? Пожалуйста, помогите мне, спасибо.

+0

Может вам запустите код, как написано в вашем примере? Я думаю, что 'Cells (" StudentID ")' даст ошибку компиляции. – ConnorsFan

+0

Да, я могу запустить, я также пробую это: TextBox1.Text = row.Cells (0) .Text, но оба они не отображали данные в текстовом поле. –

+0

И вы переместили код внутри 'GridView1_SelectedIndexChanged'? – ConnorsFan

ответ

2

Во-первых, вы можете удалить связывание с вашего TextBoxes:

<asp:TextBox ID="TextBox1" runat="server" /> 
<asp:TextBox ID="TextBox2" runat="server" /> 
<asp:TextBox ID="TextBox3" runat="server" /> 
<asp:TextBox ID="TextBox4" runat="server" /> 
<asp:TextBox ID="TextBox5" runat="server" /> 
<asp:TextBox ID="TextBox6" runat="server" /> 
<asp:TextBox ID="TextBox7" runat="server" /> 
<asp:TextBox ID="TextBox8" runat="server" /> 

Затем вы можете переместить код внутри обработчика событий и использовать индексы ячеек для извлечения значений:

Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged 
    Dim row As GridViewRow = GridView1.SelectedRow 
    TextBox1.Text = row.Cells(1).Text 
    TextBox2.Text = row.Cells(2).Text 
    TextBox3.Text = row.Cells(3).Text 
    TextBox4.Text = row.Cells(4).Text 
    TextBox5.Text = row.Cells(5).Text 
    TextBox6.Text = row.Cells(6).Text 
    TextBox7.Text = row.Cells(7).Text 
    TextBox8.Text = row.Cells(8).Text 
End Sub 
+0

Это сработало !!!! OMG Спасибо миллион вам !!! –