注册 登录
编程论坛 ASP.NET技术论坛

[求助]请问这个DataGrid怎么不显示?

gaoqiang1987 发布于 2007-09-24 12:33, 1252 次点击

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="insertrecord.aspx.vb" Inherits="insertrecord" %>
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="vbscript" type="text/vbscript" runat ="server">

Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Dim myconnection As OleDbConnection
Dim dataadaper As OleDbDataAdapter
Dim myset As DataSet
myconnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" & "h:\asp.net\information.mdb")
dataadaper = New OleDbDataAdapter("select * from information", myconnection)
myconnection.Open()
myset = New DataSet
dataadaper.Fill(myset)
information.DataSource = myset
information.DataBind()
End Sub
Sub information_pageindexchanged(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
information.CurrentPageIndex = e.NewPageIndex
DataBind()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>

<body bgcolor="#990000" style="text-align: center">

<form id="form1" runat="server">
<span style="font-weight: bold; font-size: x-large; color: #ffcc00">欢迎光临我的留言簿<br />
<asp:DataGrid runat="server"
CellPadding="3"
CellSpacing="0"
Font-Size="10pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
ID="information" AllowPaging="true" PageSize="3" ShowHeader="true" OnPageIndexChanged="information_pageindexchanged"/>

&nbsp;</span>
</form>

</body>
</html>

18 回复
#2
垃圾的沉默2007-09-24 12:41
<form id="form1" runat="server">
<span style="font-weight: bold; font-size: x-large; color: #ffcc00">欢迎光临我的留言簿<br />
<asp:DataGrid runat="server"
CellPadding="3"
CellSpacing="0"
Font-Size="10pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
ID="information" AllowPaging="true" PageSize="3" ShowHeader="true" OnPageIndexChanged="information_pageindexchanged">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"字段")%>">

</td>
</tr>
</table>
</ItemTemplate>
</asp:DataGrid>
&nbsp;</span>
</form>
#3
gaoqiang19872007-09-24 13:16
谢谢了,可它提示这条语句&lt;%# DataBinder.Eval(Container.DataItem,"字段")%&gt;"&gt;:说不支持代码块是什么意思?该怎样改进呢?
#4
垃圾的沉默2007-09-24 13:25
后台代码
OleDbConnection cnn;
OleDbDataAdapter cmd;
DataSet dt = new DataSet();
string strcnn, sql;
strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("EDNdata/EDNdatabase.mdb");
cnn = new OleDbConnection(strcnn);
cnn.Open();
sql = "select top 16 * from Rmbq where Class=5 order by id desc";
cmd = new OleDbDataAdapter(sql, cnn);
cmd.Fill(dt);
DataListD.DataSource = dt;
DataListD.DataBind();
cnn.Close();
页面
<form runat="server>
<div style="overflow:hidden;height:24px;line-height:24px;font-size:13px" id="gdC0">
<asp:DataList ID="DataListC" runat="server" RepeatColumns="3">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<a class="countD" href="<%# DataBinder.Eval(Container.DataItem,"url")%>" target="_blank">
&nbsp; &nbsp;<%# DataBinder.Eval(Container.DataItem,"Title") %></a></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</div>
</fotm>
DataList控件不支持分页的,想要分页还要手写代码
#5
gaoqiang19872007-09-24 13:44
DataList控件不支持分页,DataGrid控件用做分页显示更合适吧,你这个程序里面还有"&lt;%# DataBinder.Eval(Container.DataItem,"url")%&gt;" 它照样会提示"不支持代码块".所以我就想问一下针对DataGrid的程序对&lt;%# DataBinder.Eval(Container.DataItem,"字段")%&gt;"&gt;语句的修改,使它能够正确显示.谢谢了!
#6
垃圾的沉默2007-09-24 14:06
合不合适是看你个人问题了..
<%# DataBinder.Eval(Container.DataItem,"字段")%>" 字段是你information里的列名.
#7
gaoqiang19872007-09-24 14:45

这个我倒是知道,但是它原因出现在哪呢?我不知道,麻烦你再指点一下了,谢谢!代码如下:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="insertrecord.aspx.vb" Inherits="insertrecord" %>
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="vbscript" type="text/vbscript" runat ="server">

Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Dim myconnection As OleDbConnection
Dim mycommand As OleDbCommand
Dim myreader As OleDbDataReader
myconnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" & "h:\asp.net\information.mdb")
mycommand = New OleDbCommand("select * from information", myconnection)
myconnection.Open()
myreader = mycommand.ExecuteReader()
information.DataSource = myreader
information.DataBind()
End Sub
Sub information_pageindexchanged(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
information.CurrentPageIndex = e.NewPageIndex
DataBind()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>

<body bgcolor="#990000" style="text-align: center">

<form id="form1" runat="server">
欢迎光临我的留言簿<br />
<asp:DataGrid runat="server"
CellPadding="3"
CellSpacing="0"
Font-Size="10pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"

ID="information" AllowPaging="true" PageSize="3" ShowHeader="true"
OnPageIndexChanged="information_pageindexchanged">
<Columns>
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"name")%>">
</td>
</tr>
</table>
</ItemTemplate>
</Columns>
</asp:DataGrid>
&nbsp;
</form>

</body>
</html>

#8
垃圾的沉默2007-09-24 15:19
Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Dim myconnection As OleDbConnection
Dim mycommand As OleDbCommand
Dim myreader As OleDbDataReader
myconnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="server.Mappath("asp.net\information.mdb"))
myconnection.Open()
mycommand = New OleDbCommand("select * from information", myconnection)
myreader = mycommand.ExecuteReader()
information.DataSource = myreader
information.DataBind()
End Sub
你试一下吧..
#9
gaoqiang19872007-09-24 15:34
还是不行,一样的问题,我觉得问题就在&lt;%# DataBinder.Eval(Container.DataItem,"name")%&gt;"&gt; 上.     
#10
垃圾的沉默2007-09-24 15:50
E-Mail多少..我发一份我写过的留板给你.
#11
垃圾的沉默2007-09-24 16:06
CellPadding="3"
CellSpacing="0"
Font-Size="10pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"

ID="information" AllowPaging="true" PageSize="3" ShowHeader="true"
OnPageIndexChanged="information_pageindexchanged">
<Columns>
这些应该是DataGrid控件的属性

[此贴子已经被作者于2007-9-24 16:08:34编辑过]

#12
gaoqiang19872007-09-25 12:38
那太谢谢你了,我的邮箱号是gaoqiang19870903@126.com
#13
guoxhvip2007-09-25 15:30
用pagedDataSource类和DataList绑订那就支持分页了
#14
垃圾的沉默2007-09-25 17:14
可以的吗??试试....
#15
卡卡艾2007-09-26 08:25
<%# DataBinder.Eval(Container.DataItem,"name")%>">
后面多个标记是什么意思?/?
#16
垃圾的沉默2007-09-26 08:38
应该是多加的了
#17
jxnuwy042007-09-26 09:01
我做了一个DataGrid,其中模板列是这样显示的,看看有什么不同,也不知道对你有不有用?
<ItemTemplate>
<asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ReviewScore") %>'>
</asp:Label>
</ItemTemplate>
#18
垃圾的沉默2007-09-26 09:30
以下是引用gaoqiang1987在2007-9-24 14:45:54的发言:

这个我倒是知道,但是它原因出现在哪呢?我不知道,麻烦你再指点一下了,谢谢!代码如下:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="insertrecord.aspx.vb" Inherits="insertrecord" %>
只有一个文件的的为什么还有代码引用单个程序的文件,如果是把代码放在一个单独文件里应该是先调用insertrecord.aspx.vb吧??
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script language="vbscript" type="text/vbscript" runat ="server">

Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
Dim myconnection As OleDbConnection
Dim mycommand As OleDbCommand
Dim myreader As OleDbDataReader
myconnection = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" & "h:\asp.net\information.mdb")
mycommand = New OleDbCommand("select * from information", myconnection)
myconnection.Open()
myreader = mycommand.ExecuteReader()
information.DataSource = myreader
information.DataBind()
End Sub
Sub information_pageindexchanged(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
information.CurrentPageIndex = e.NewPageIndex
DataBind()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>

<body bgcolor="#990000" style="text-align: center">

<form id="form1" runat="server">
欢迎光临我的留言簿<br />
<asp:DataGrid runat="server"
CellPadding="3"
CellSpacing="0"
Font-Size="10pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"

ID="information" AllowPaging="true" PageSize="3" ShowHeader="true"
OnPageIndexChanged="information_pageindexchanged">
<Columns>
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"name")%>
</td>
</tr>
</table>
</ItemTemplate>
</Columns>
</asp:DataGrid>
</form>

</body>
</html>

#19
垃圾的沉默2007-09-26 09:33
以下是引用jxnuwy04在2007-9-26 9:01:23的发言:
我做了一个DataGrid,其中模板列是这样显示的,看看有什么不同,也不知道对你有不有用?
<ItemTemplate>
<asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ReviewScore") %>'>
</asp:Label>
</ItemTemplate>

楼上的。这里是什么意思。能帮我说说吗??我没用过。。

1