我是.NET编程的全新手,并试图让一些东西开始。
我运行了一些从数据库中提取数据并将其呈现给Datalist的代码。当脚本在aspx文件上时,它工作正常,但是当我将它转移到后面的代码时,我得到以下错误
Compiler Error Message: BC30451: Name 'showIt' is not declared.
(showIt是Datalist的ID)
显然,Datalist标记位于我的aspx页面中,脚本位于.vb文件后面的代码中。
正如我所说,当脚本都在一个.aspx文件上时,一切正常。
后面代码中的代码是:(我已经跳过了SQL和连接字符串以保持这篇文章的简洁)
Partial Public Class Data
Inherits System.Web.UI.Page
Sub Page_Load(sender As Object, e As EventArgs)
Dim objDataReader As OdbcDataReader
objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
showIt.DataSource = objDataReader
showIt.DataBind()
objDataReader.Close()
end sub
end class
aspx文件如下所示:(再次简化,基本HTML标记等已删除)
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="dataOut.aspx.vb" Inherits="_Default"%>
<form id="form1" runat="server">
<asp:DataList ID="showIt" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
<ItemTemplate>
<div style="width:300px; display:inline-block; height: 200px; overflow:hidden">
<div style="width:100%; background:#880000; border-bottom: solid 1px black"><%# DataBinder.Eval(Container.DataItem, "item") %></div>
<br />
<%# Data.stockDisplay(Eval("shopstock"))%>
<div style="clear: both"><%# Left(DataBinder.Eval(Container.DataItem, "description"),150) %></div>
</div>
</ItemTemplate>
答案 0 :(得分:1)
啊哈......我已经修好了!
需要在函数之前声明DataList,以便公开可用......或者至少我认为这是问题,它现在无论如何都可以使用
Protected WithEvents showIt As System.Web.UI.WebControls.DataList
我现在有其他问题......但是可以提出另一个问题!