2014-10-27 55 views
0

我遇到了VS2013中的Gridview控件问题。我有一个带有GridView的简单页面,可以加载200条记录。我需要能够编辑第一个&姓氏,以便它们位于TemplateFields中。当我在IE11中打开页面时,该页面在Gridview中显示记录,但该页面在几分钟内基本无响应。如果我尝试向下滚动滚动条,只需坐在那里10秒钟,然后稍微移动一下。如果页面上有其他链接,则它们不起作用,甚至关闭Web浏览器也需要一段时间。我已经在Firefox和Chrome中尝试了这一点,并且具有相同的问题,尽管不太明显。我在VS2010中创建了完全相同的项目,并且具有完全相同的代码的页面正常工作。有谁知道为什么会发生这种情况。VS2013 Gridview问题

HTML代码:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" > 
     <Columns> 
      <asp:CommandField ShowEditButton="True" /> 
      <asp:BoundField DataField="ID" HeaderText="ID" /> 
      <asp:TemplateField HeaderText="First"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Last"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("LastName") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label2" runat="server" Text='<%# Bind("LastName") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView>  
</div> 
</form> 
</body> 
</html> 

后面的代码:

Public Class WebForm1 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     LoadGrid() 
    End If 
End Sub 
Public Sub LoadGrid() 

    Dim dt As DataTable 
    Dim dr As DataRow 

    dt = New DataTable 
    dt.Columns.Add("ID", GetType(String)) 
    dt.Columns.Add("FirstName", GetType(String)) 
    dt.Columns.Add("LastName", GetType(String)) 

    Dim i As Integer = 0 
    For i = 0 To 200 
     dr = dt.NewRow 
     dr(0) = i 
     dr(1) = "John" & i.ToString 
     dr(2) = "Doe" & i.ToString 

     dt.Rows.Add(dr) 
    Next 

    GridView1.DataSource = dt 
    GridView1.DataBind() 

End Sub 
End Class 

回答

0

我还没有找到一个解决这个问题的,但有一点进一步缩小它。如果我在ItemTemplate中的控件中有'ID'属性,那么当第一次加载页面时页面非常慢。如果我从ItemTemplate中的文本框和标签删除“ID”属性,那么该页面加载并正常工作。为什么会有'ID'属性导致页面在第一次加载时如此缓慢?