Asp.net 在浏览器中查看时,是否看不到Gridview?

Asp.net 在浏览器中查看时,是否看不到Gridview?,asp.net,gridview,Asp.net,Gridview,我有一个母版页,然后我用TextBox.aspx创建一个GridView,并选择母版页 但是,当我浏览时,无法看到gridview 但如果我从未将gridview包含在母版页中,则可以看到它 然后它在c#中工作,而不是在vb.net中 我认为是页面加载部分导致了问题,但我不确定是什么原因 我能知道为什么吗 这是我的密码 <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/loggedInMas

我有一个母版页,然后我用TextBox.aspx创建一个GridView,并选择母版页 但是,当我浏览时,无法看到gridview 但如果我从未将gridview包含在母版页中,则可以看到它 然后它在c#中工作,而不是在vb.net中 我认为是页面加载部分导致了问题,但我不确定是什么原因 我能知道为什么吗

这是我的密码

 <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/loggedInMasterPage.Master" CodeBehind="trry.aspx.vb" Inherits="WebRole1.trry" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:GridView ID="GridView1" runat="server" ShowFooter="true" 
            AutoGenerateColumns="false" onrowcreated="Gridview1_RowCreated">
    <Columns>
            <asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
            <asp:TemplateField HeaderText="Header 1">
                <ItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns> 
    </asp:GridView>

      <asp:gridview ID="Gridview3" runat="server" ShowFooter="true" 
            AutoGenerateColumns="false" onrowcreated="Gridview1_RowCreated">
            <Columns>
            <asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
            <asp:TemplateField HeaderText="Header 1">
                <ItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Header 2">
                <ItemTemplate>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Header 3">
                <ItemTemplate>
                     <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                </ItemTemplate>
                <FooterStyle HorizontalAlign="Right" />
                <FooterTemplate>
                 <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" 
                        onclick="ButtonAdd_Click" />
                </FooterTemplate>
            </asp:TemplateField>
                 <asp:TemplateField HeaderText="Header 3">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Click Me"></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>
        </asp:gridview>
        <asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />

</asp:Content>

这是我的vb代码

   Imports System.Data.SqlClient
Imports System.Data
Imports System.Collections.Specialized

Imports System.Text
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Public Class trry
Inherits System.Web.UI.Page



  Private Sub SetInitialRow()
        Dim dt As New DataTable()
        Dim dr As DataRow = Nothing
        dt.Columns.Add(New DataColumn("RowNumber", GetType(String)))
        dt.Columns.Add(New DataColumn("Column1", GetType(String)))
        dt.Columns.Add(New DataColumn("Column2", GetType(String)))
        dt.Columns.Add(New DataColumn("Column3", GetType(String)))
        dr = dt.NewRow()
        dr("RowNumber") = 1
        dr("Column1") = String.Empty
        dr("Column2") = String.Empty
        dr("Column3") = String.Empty
        dt.Rows.Add(dr)
        'dr = dt.NewRow();

        'Store the DataTable in ViewState
        ViewState("CurrentTable") = dt

        Gridview1.DataSource = dt
        Gridview1.DataBind()
    End Sub

    Private Sub AddNewRowToGrid()
        Dim rowIndex As Integer = 0

        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            Dim drCurrentRow As DataRow = Nothing
            If dtCurrentTable.Rows.Count > 0 Then
                For i As Integer = 1 To dtCurrentTable.Rows.Count
                    'extract the TextBox values
                    Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("TextBox1"), TextBox)
                    Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("TextBox2"), TextBox)
                    Dim box3 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl("TextBox3"), TextBox)

                    drCurrentRow = dtCurrentTable.NewRow()
                    drCurrentRow("RowNumber") = i + 1
                    drCurrentRow("Column1") = box1.Text
                    drCurrentRow("Column2") = box2.Text
                    drCurrentRow("Column3") = box3.Text

                    rowIndex += 1
                Next
                dtCurrentTable.Rows.Add(drCurrentRow)
                ViewState("CurrentTable") = dtCurrentTable

                Gridview1.DataSource = dtCurrentTable
                Gridview1.DataBind()
            End If
        Else
            Response.Write("ViewState is null")
        End If

        'Set Previous Data on Postbacks
        SetPreviousData()
    End Sub

    Private Sub SetPreviousData()
        Dim rowIndex As Integer = 0
        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            If dt.Rows.Count > 0 Then
                For i As Integer = 1 To dt.Rows.Count - 1
                    Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("TextBox1"), TextBox)
                    Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("TextBox2"), TextBox)
                    Dim box3 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl("TextBox3"), TextBox)

                    box1.Text = dt.Rows(i)("Column1").ToString()
                    box2.Text = dt.Rows(i)("Column2").ToString()
                    box3.Text = dt.Rows(i)("Column3").ToString()


                    rowIndex += 1
                Next
                ' ViewState["CurrentTable"] = dt;

            End If
        End If
    End Sub
    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If Not Page.IsPostBack Then
            SetInitialRow()
        End If
    End Sub
    Protected Sub ButtonAdd_Click(sender As Object, e As EventArgs)
        AddNewRowToGrid()
    End Sub
    Protected Sub Button1_Click(sender As Object, e As EventArgs)
        Dim rowIndex As Integer = 0
        Dim sc As New StringCollection()
        If ViewState("CurrentTable") IsNot Nothing Then
            Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable)
            Dim drCurrentRow As DataRow = Nothing
            If dtCurrentTable.Rows.Count > 0 Then
                For i As Integer = 1 To dtCurrentTable.Rows.Count
                    'extract the TextBox values
                    Dim box1 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl("TextBox1"), TextBox)
                    Dim box2 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl("TextBox2"), TextBox)
                    Dim box3 As TextBox = DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl("TextBox3"), TextBox)

                    'get the values here

                    'Response.Write(box1.Text + "<BR/>");
                    'Response.Write(box2.Text + "<BR/>");
                    'Response.Write(box3.Text);

                    sc.Add((box1.Text + "," + box2.Text & ",") + box3.Text)
                    rowIndex += 1
                Next
                InsertRecords(sc)
            End If
        End If
    End Sub
    'A method that returns a string which calls the connection string from the web.config
    Private Function GetConnectionString() As String
        '"DBConnection" is the name of the Connection String
        'that was set up from the web.config file
        Return System.Configuration.ConfigurationManager.ConnectionStrings("WeddingPerfection").ConnectionString

    End Function

    'A method that Inserts the records to the database
    Private Sub InsertRecords(sc As StringCollection)
        Dim conn As New SqlConnection(GetConnectionString())
        Dim sb As New StringBuilder(String.Empty)
        Dim splitItems As String() = Nothing
        For Each item As String In sc

            Const sqlStatement As String = "INSERT INTO SampleTables (Column1,Column2,Column3) VALUES"
            If item.Contains(",") Then
                splitItems = item.Split(",".ToCharArray())
                sb.AppendFormat("{0}('{1}','{2}','{3}'); ", sqlStatement, splitItems(0), splitItems(1), splitItems(2))

            End If
        Next

        Try
            conn.Open()
            Dim cmd As New SqlCommand(sb.ToString(), conn)
            cmd.CommandType = CommandType.Text
            cmd.ExecuteNonQuery()


            Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "Script", "alert('Records Successfuly Saved!');", True)
        Catch ex As System.Data.SqlClient.SqlException
            Dim msg As String = "Insert Error:"
            msg += ex.Message

            Throw New Exception(msg)
        Finally
            conn.Close()
        End Try
    End Sub
    Protected Sub Gridview1_RowCreated(sender As Object, e As GridViewRowEventArgs)

        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim l As Label = DirectCast(e.Row.FindControl("Label1"), Label)
            If l IsNot Nothing Then
                Dim script As String = "window.open('addGroup.aspx');"
                l.Attributes.Add("onclick", script)
            End If
        End If
    End Sub

End Class
导入System.Data.SqlClient
导入系统数据
导入System.Collections.Specialized
导入系统文本
导入系统
导入System.Collections.Generic
导入系统
导入系统.Web
导入System.Web.UI
导入System.Web.UI.WebControl
公开课
继承System.Web.UI.Page
私有子SetInitialRow()
Dim dt作为新数据表()
将dr设置为数据行=无
Add(新数据列(“RowNumber”,GetType(String)))
Add(新的DataColumn(“Column1”,GetType(String)))
Add(新的DataColumn(“Column2”,GetType(String)))
Add(新的DataColumn(“Column3”,GetType(String)))
dr=dt.NewRow()
dr(“行数”)=1
dr(“Column1”)=String.Empty
dr(“Column2”)=String.Empty
dr(“Column3”)=String.Empty
dt.行.添加(dr)
'dr=dt.NewRow();
'将数据表存储在ViewState中
视图状态(“当前表”)=dt
Gridview1.DataSource=dt
Gridview1.DataBind()
端接头
私有子AddNewRowToGrid()
Dim rowIndex为整数=0
如果ViewState(“CurrentTable”)不是Nothing,则
Dim dtCurrentTable As DataTable=DirectCast(视图状态(“CurrentTable”)、数据表)
Dim drCurrentRow作为数据行=无
如果dtCurrentTable.Rows.Count>0,则
对于dtCurrentTable.Rows.Count,i为整数=1
'提取文本框值
Dim box1作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl(“TextBox1”),TextBox)
Dim box2作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl(“TextBox2”),TextBox)
Dim box3作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl(“TextBox3”),TextBox)
drCurrentRow=dtCurrentTable.NewRow()
drCurrentRow(“行号”)=i+1
drCurrentRow(“Column1”)=box1.Text
drCurrentRow(“Column2”)=box2.Text
drCurrentRow(“Column3”)=box3.Text
行索引+=1
下一个
dtCurrentTable.Rows.Add(drCurrentRow)
ViewState(“CurrentTable”)=dtCurrentTable
Gridview1.DataSource=dtCurrentTable
Gridview1.DataBind()
如果结束
其他的
Write(“ViewState为null”)
如果结束
'在回发上设置以前的数据
SetPreviousData()
端接头
私有子集PreviousData()
Dim rowIndex为整数=0
如果ViewState(“CurrentTable”)不是Nothing,则
Dim dt As DataTable=DirectCast(视图状态(“当前表”)、数据表)
如果dt.Rows.Count>0,则
对于i,整数=1到dt.Rows.Count-1
Dim box1作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl(“TextBox1”),TextBox)
Dim box2作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl(“TextBox2”),TextBox)
Dim box3作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl(“TextBox3”),TextBox)
box1.Text=dt.Rows(i)(“Column1”).ToString()
box2.Text=dt.Rows(i)(“Column2”).ToString()
box3.Text=dt.Rows(i)(“Column3”).ToString()
行索引+=1
下一个
'视图状态[“当前表”]=dt;
如果结束
如果结束
端接头
受保护的子页加载(发件人作为对象,e作为事件参数)
如果不是Page.IsPostBack,则
SetInitialRow()
如果结束
端接头
受保护的子按钮单击(发件人作为对象,e作为事件参数)
AddNewRowToGrid()
端接头
受保护的子按钮1\u单击(发件人作为对象,e作为事件参数)
Dim rowIndex为整数=0
Dim sc作为新的StringCollection()
如果ViewState(“CurrentTable”)不是Nothing,则
Dim dtCurrentTable As DataTable=DirectCast(视图状态(“CurrentTable”)、数据表)
Dim drCurrentRow作为数据行=无
如果dtCurrentTable.Rows.Count>0,则
对于dtCurrentTable.Rows.Count,i为整数=1
'提取文本框值
Dim box1作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(1).FindControl(“TextBox1”),TextBox)
Dim box2作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(2).FindControl(“TextBox2”),TextBox)
Dim box3作为TextBox=DirectCast(Gridview1.Rows(rowIndex).Cells(3).FindControl(“TextBox3”),TextBox)
'在此处获取值
'Response.Write(box1.Text+“
”); 'Response.Write(box2.Text+“
”); '响应.写入(框3.文本); sc.Add((box1.Text+“,”+bo
<head>

</head>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">