各位请帮忙,DataGrip 的入门问题,在线等

veaven 2003-02-28 09:04:37
为什么看书上的例子,DataGrip都出不来呢?


文件: WebForm1.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication1
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DataGrid dgr_test;

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}

ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

for (int i = 0; i <= 8; i++)
{
dr = dt.NewRow();

dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);

dt.Rows.Add(dr);
}

DataView dv = new DataView(dt);
return dv;
}



private void Page_Load(object sender, System.EventArgs e)
{
dgr_test.DataSource =CreateDataSource();
dgr_test.DataBind();
}




}
}


文件 WebForm1.aspx

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>

<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT id="FONT1" face="宋体">

<asp:DataGrid id="dgr_test" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 80px" runat="server" Width="248px" Height="232px" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="3" GridLines="Horizontal">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>

<ItemStyle BackColor="Yellow">
</ItemStyle>

<AlternatingItemStyle BackColor="LightGreen">
</AlternatingItemStyle>

<Columns>

<asp:BoundColumn
HeaderText="Number"
DataField="IntegerValue">
</asp:BoundColumn>

<asp:BoundColumn
HeaderText="Description"
DataField="StringValue">
</asp:BoundColumn>

<asp:BoundColumn
HeaderText="Price"
DataField="CurrencyValue" >
</asp:BoundColumn>

</Columns>

</asp:DataGrid>

<asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 200px; POSITION: absolute; TOP: 24px" runat="server" Height="24px" Width="64px">DataGrip</asp:Label></FONT></form>
</body>
</HTML>




...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
veaven 2003-02-28
  • 打赏
  • 举报
回复
我的做法就是,你说得这样
把所有代码删了,自己又写的,
还有 override protected void OnInit(EventArgs e)
加在什么地方那?谢了
nizhigang2000 2003-02-28
  • 打赏
  • 举报
回复
主要是因为这个上面所说的是由.net自动产生的,而你肯定是将其中所有的代码都删掉了自己又写上去的,所以就会出错
blazelgh 2003-02-28
  • 打赏
  • 举报
回复
我的是:
<%@ Import Namespace="System.Data" %>
<%@ Page Language="C#" debug="true" %>
<html>
<script language="C#" runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
Random Rand_Num = new Random();
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i < 15; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * i ;
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}

void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
}
}

</script>
<body>
<form runat=server>
<h3><font face="Verdana">DataGrid</font></h3>
<asp:DataGrid id="ItemsGrid" runat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
HeaderStyle-BackColor="#00aaaa"
AutoGenerateColumns="true"/>
</form>
</body>
</html>

没有问题啊.
nizhigang2000 2003-02-28
  • 打赏
  • 举报
回复
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

在你的代码中少了关键的一个东东
#region
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

#endregion
加上就可以了,

veaven 2003-02-28
  • 打赏
  • 举报
回复
但是我的CreateDataSource() 已经生成了一个DataView ,这个有数据的阿
里面是自己加入的数据
gOODiDEA 2003-02-28
  • 打赏
  • 举报
回复
你的DataGrid没有数据,当然出不来了!
handsomejian 2003-02-28
  • 打赏
  • 举报
回复
根本就没有数据
只能生成一个datagrid,里面一条记录也没有,所以在也面上不显示
若要显示数据,需要加上数据适培器
并且有查询语句
ljfppp 2003-02-28
  • 打赏
  • 举报
回复
//我想大概是你的返回直问题
private DataTable CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

for (int i = 0; i <= 8; i++)
{
dr = dt.NewRow();

dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);

dt.Rows.Add(dr);
}

return dt;
}
private void Page_Load(object sender, System.EventArgs e)
{
dgr_test.DataSource =CreateDataSource().DefaultView;
dgr_test.DataBind();
}

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧