我之前从未使用过这两个控件中的任何一个,而且我没有看到页面的可见渲染(编译和运行但没有产生任何结果);这个简单的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>
这是web.config中的连接字符串部分(我已经分别尝试了两个连接字符串,它们都没有渲染):
<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>
我在构建过程中没有遇到运行时错误和错误。简单的查询在SQL查询分析器(即SQL Server 2000)中运行良好。有任何想法吗?
EDIT-UPDATE: 这是我在.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 select甚至没有被触发 服务器。正如我所说,页面是空的 - 当我通过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>
答案 0 :(得分:2)
我认为这段代码唯一不对的是sqldatasource的放置。你能把它放在标签内吗?
如果这不起作用,您可以将列表视图定义更改为
<asp:ListView ID="CategoryList" runat="server">
然后将您的页面加载代码更改为
CategoryList.DataSource = Categories;
CategoryList.DataBind();
你应该可以点击调试器
作为最后一个选项,您还可以检查连接字符串是否放在web.config中的Configuration标记内。