使用代码隐藏时未声明的数据名称.aspx.vb



我是一个。net编程新手,正在尝试一些东西。

我已经运行了一些代码,从数据库中提取数据并将其呈现为数据列表。当脚本在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> 

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

需要在函数之前声明DataList,这样它就可以公开使用…或者至少我认为这是问题所在,它现在可以工作了

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

我现在有其他问题…这可以放到另一个问题里!

最新更新