使用Code Behind时未声明Datalist名称。 aspx.vb

时间:2011-10-24 14:41:49

标签: asp.net vb.net code-behind datalist

我是.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> 

1 个答案:

答案 0 :(得分:1)

啊哈......我已经修好了!

需要在函数之前声明DataList,以便公开可用......或者至少我认为这是问题,它现在无论如何都可以使用

Protected WithEvents showIt As System.Web.UI.WebControls.DataList

我现在有其他问题......但是可以提出另一个问题!