Listview 和 SQLDataSource 不渲染任何内容

发布于 2024-08-20 21:21:47 字数 3187 浏览 3 评论 0原文

我以前从未使用过这两个控件中的任何一个,并且页面没有可见的呈现(编译并运行但不产生任何结果);我没有这个简单的 asp.net 页面的代码隐藏文件,并且我正在使用 Visual Studio 2008:

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="Index.aspx.cs" Inherits="zList.Index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
   <head runat="server">
        <title></title>
   </head>
<body>
<form id="form1" runat="server">
<div>
    <asp:ListView ID="CategoryList" runat="server" 
            DataSourceID="Categories">
    <LayoutTemplate>
        <ol>
            <asp:PlaceHolder runat="server" ID="itemPlaceholder">
            </asp:PlaceHolder>
        </ol>
    </LayoutTemplate>
       <ItemTemplate>
            <li><%# Eval("AttrDesc")%></li>
       </ItemTemplate>
    </asp:ListView>
</div>
</form>
</body>
</html>
<asp:sqldatasource runat="server" id="Categories"
    ConnectionString="<%$ ConnectionStrings:ZIPeeeConnectionString2 %>" 
    SelectCommand="SELECT AttrID,AttrDesc FROM dbo.tblAttributes1">
</asp:sqldatasource>

我已分别尝试了两个连接字符串,它们都没有渲染任何结果):

<connectionStrings>
    <add name="ZIPeeeConnectionString" connectionString="Data Source=MOJITO;Initial Catalog=ZIPeee;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <add name="ZIPeeeConnectionString2" connectionString="Data Source=MOJITO;Initial Catalog=ZIPeee;User ID=sa;Password=" providerName="System.Data.SqlClient"/>
</connectionStrings>

这是 web.config 中的连接字符串部分( 没有运行时错误,并且在构建过程中没有错误。这个简单的查询在 SQL 查询分析器(即 SQL Server 2000)中运行良好。有什么想法吗?

编辑更新: 这是我的 .ASPX.CS 代码隐藏文件中的内容,我无法让调试器在 .DataBind 方法上的断点处停止:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace zList
{
    public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            CategoryList.DataBind();   // breakpoint set here but debugger won't stop here
        }
    }
}

顺便说一下,我启动了 SQL Profiler,看起来 SQL 选择甚至没有被执行向 服务器。正如我所说,该页面是空的 - 当我通过查看页面源代码抓取它时,只是这个垃圾:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1   /DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title></title></head>
<body>
<form name="form1" method="post" action="Index.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjAyMTkwMzQ3OQ9kFgQCAw9kFgICAQ8UKwACDxYEHgtfIURhdGFCb3VuZGceC18hSXRlbUNvdW50Av////8PZGRkAgUPD2QPEBYDZgIBAgIWAxYCHg5QYXJhbWV0ZXJWYWx1ZWQWAh8CZBYCHwJkFgMCAwIDAgNkZBgBBQxDYXRlZ29yeUxpc3QPZ2TCuhjvuwDRjaGJssTwiDXpAv/fdw==" />
</div>

<div>

</div>
</form>
</body>
</html>

I've never used either of these 2 controls before and I'm stuck with no visible rendering of the page (compiles and runs but produces nothing); I have no code behind file with this simple asp.net page and I am using Visual Studio 2008:

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="Index.aspx.cs" Inherits="zList.Index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
   <head runat="server">
        <title></title>
   </head>
<body>
<form id="form1" runat="server">
<div>
    <asp:ListView ID="CategoryList" runat="server" 
            DataSourceID="Categories">
    <LayoutTemplate>
        <ol>
            <asp:PlaceHolder runat="server" ID="itemPlaceholder">
            </asp:PlaceHolder>
        </ol>
    </LayoutTemplate>
       <ItemTemplate>
            <li><%# Eval("AttrDesc")%></li>
       </ItemTemplate>
    </asp:ListView>
</div>
</form>
</body>
</html>
<asp:sqldatasource runat="server" id="Categories"
    ConnectionString="<%$ ConnectionStrings:ZIPeeeConnectionString2 %>" 
    SelectCommand="SELECT AttrID,AttrDesc FROM dbo.tblAttributes1">
</asp:sqldatasource>

Here is the connection string section from web.config (I have tried both connection strings separately and they both result in nothing rendered):

<connectionStrings>
    <add name="ZIPeeeConnectionString" connectionString="Data Source=MOJITO;Initial Catalog=ZIPeee;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <add name="ZIPeeeConnectionString2" connectionString="Data Source=MOJITO;Initial Catalog=ZIPeee;User ID=sa;Password=" providerName="System.Data.SqlClient"/>
</connectionStrings>

I am getting no runtime errors and no errors during the build. The simple query works fine from SQL Query Analyzer (i.e. SQL Server 2000). Any ideas?

EDIT-UPDATE:
Here is what I have in my .ASPX.CS code behind file and I cannot get the debugger to stop on the breakpoint on the .DataBind method:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace zList
{
    public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            CategoryList.DataBind();   // breakpoint set here but debugger won't stop here
        }
    }
}

By the way, I fired up SQL Profiler and it appears the SQL select is not even being fired against
the server. As I said, the page is empty - just this junk when I scrape it via View Page Source:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1   /DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title></title></head>
<body>
<form name="form1" method="post" action="Index.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjAyMTkwMzQ3OQ9kFgQCAw9kFgICAQ8UKwACDxYEHgtfIURhdGFCb3VuZGceC18hSXRlbUNvdW50Av////8PZGRkAgUPD2QPEBYDZgIBAgIWAxYCHg5QYXJhbWV0ZXJWYWx1ZWQWAh8CZBYCHwJkFgMCAwIDAgNkZBgBBQxDYXRlZ29yeUxpc3QPZ2TCuhjvuwDRjaGJssTwiDXpAv/fdw==" />
</div>

<div>

</div>
</form>
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风念你 2024-08-27 21:21:47

我认为这段代码唯一的问题是 sqldatasource 的位置。你能把它放在标签里面吗?

如果这不起作用,您可以将列表视图定义更改为

<asp:ListView ID="CategoryList" runat="server"> 

,然后将页面加载代码更改为

CategoryList.DataSource = Categories;
CategoryList.DataBind();

您应该能够点击调试器

作为最后一个选项,您还可以检查连接字符串是否放置在 web.config 中的配置标记内。

I think the only thing wrong with this code is the placement of the sqldatasource. Can you place it inside the tag.

If that doesnt work, can you change your listview definition to

<asp:ListView ID="CategoryList" runat="server"> 

and then change your page load code to

CategoryList.DataSource = Categories;
CategoryList.DataBind();

You should be able to hit the debugger

As a last option, can you also check whether the connectionstrings is placed within the Configuration tag in web.config.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文