如何传递datagrid中的数据??应该是传递这个对象吧??请高手指点了。仅剩的60分全给了.

DoHope 2003-08-20 11:09:36
在page1页面中,有datagrid1,还有个按钮button1,现在想点击button1后,马上打开page2页面,将page1中的datagrid1的数据传递给page2中的datagrid1,不知如何实现??俺是新手,请将代码写全,否则以俺的水平恐怕看不懂的。
表示感谢。
...全文
59 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
seesea125 2003-08-20
  • 打赏
  • 举报
回复
旺才的应该可以把,改改
private sub LinkButton1_Click(sender as object, e as System.EventArgs)
Session("DataGrid")=this.DataGrid1
Page.RegisterStartupScript("rrr", "<script language=javascript>window.showModalDialog('2.aspx',window,'dialogHeight: 425px; dialogWidth: 600px;');</script>")
end sub
下面的
protected DataGrid dg;
private void Page_Load(object sender, System.EventArgs e)
{
dg=(DataGrid)Session["DataGrid"];
}
改为
protected dim dg as DataGrid;
private void Page_Load(object sender, System.EventArgs e)
{
dg=ctype(Session("DataGrid"),DataGrid)
}
DoHope 2003-08-20
  • 打赏
  • 举报
回复
各位大哥,再麻烦再改用VB的代码来实现一下吧,再照顾一下我这个新手吧,在下不胜感激。谢谢!!!
nakey2008 2003-08-20
  • 打赏
  • 举报
回复
就用Session啊,很简单的!代码如下:
1.aspx中:
private void LinkButton1_Click(object sender, System.EventArgs e)
{
Session["DataGrid"]=this.DataGrid1;
Page.RegisterStartupScript("rrr", "<script language=javascript>window.showModalDialog('2.aspx',window,'dialogHeight: 425px; dialogWidth: 600px;');</script>");
}
2.aspx中:
protected DataGrid dg;
private void Page_Load(object sender, System.EventArgs e)
{
dg=(DataGrid)Session["DataGrid"];
}
//下面就可以随便使用了!^_^
DoHope 2003-08-20
  • 打赏
  • 举报
回复
我想问一下,在qwbyxw(随缘)的回答中,他说的是:

用Session
Page1按下button1加上以下代码
Session("MyDS")=datagrid1.DataSource

Page2
Page_Load事件中取数据
DataSource ds = (DataSource)Session("MyDS");
if (ds != null)
{
datagrid1.DataSource = ds;
datagrid1.DataBind();
}

他用的是C#吧,在我的VB中DataSource ds = (DataSource)Session("MyDS")这句话通不过的,如何来改呀???
fly_miss 2003-08-20
  • 打赏
  • 举报
回复
如果page2是从page1中打开的,你可以在page2中,读page1的表格(其实就是DataGrid)
在客户端,用javascript
iamjialin 2003-08-20
  • 打赏
  • 举报
回复
int ColCount = DataGrid2.Items[0].Cells.Count;

DataTable dt = new DataTable();

//int i;
//for (i=0; i < ColCount; i++)
dt.Columns.Add("数量", typeof(string));
dt.Columns.Add("品名", typeof(string));
dt.Columns.Add("单价", typeof(string));
dt.Columns.Add("总价", typeof(string));


foreach (DataGridItem dgi in DataGrid2.Items)
//for(int j=0;j<DataGrid2.Items.Count;j++)
{
DataRow dr = dt.NewRow();
//for (i=0; i < ColCount; i++)
//{
dr[0] = ((TextBox)dgi.Cells[0].FindControl("TextBox1")).Text.Trim();
dr[1] = ((Label)dgi.Cells[1].FindControl("Label1")).Text.Trim();
dr[2] = ((Label)dgi.Cells[2].FindControl("Label2")).Text.Trim();
dr[3] = ((Label)dgi.Cells[3].FindControl("Label3")).Text.Trim();

//}

dt.Rows.Add(dr);
}
Application["tb"]=new DataView(dt);

//传递Application["tb"]
seesea125 2003-08-20
  • 打赏
  • 举报
回复
这样也不对,可以把id循环放数组里传过去,也比较麻烦,还没有session简单,
seesea125 2003-08-20
  • 打赏
  • 举报
回复
if(((CheckBox)m_item.Cells[0].FindControl("cb")).Checked==true)
这个判断去掉,就传过去了
public void cbclick(object sender,EventArgs e)
{
foreach(DataGridItem m_item in this.DataGrid2.Items)
{

int id=(int)this.DataGrid2.DataKeys[m_item.ItemIndex];
myconnclass myclass=new myconnclass();
Response.Redirect("detail.aspx?id="+id);


}

}
在detail.aspx页面接收一下
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
int id=Convert.ToInt32(Request["id"]);
i=id;
myconnclass myclass=new myconnclass();
string varsql="select * from Cust_Contact where CUST_ID=" + id;
OleDbDataReader myrd=myclass.ExecuteReaderw(varsql);
DataGrid1.DataSource=myrd;
DataGrid1.DataBind();

}
DoHope 2003-08-20
  • 打赏
  • 举报
回复
to : seesea125(雨天)
我要传的是datagrid的全部数据,怎么办呀?
seesea125 2003-08-20
  • 打赏
  • 举报
回复
按钮相应事件,datagrid里有一控件checkbox,传递datakeys的数值到第二个页面,当然你可以有很多选择,比如里面放radiobox等,选中datagrid某一行,点击datagird外的button,传递这一行的数值
public void ctclick(object sender,EventArgs e)
{
foreach(DataGridItem m_item in this.DataGrid2.Items)
{
if(((CheckBox)m_item.Cells[0].FindControl("cb")).Checked==true)
{
int id=(int)this.DataGrid2.DataKeys[m_item.ItemIndex];
myconnclass myclass=new myconnclass();
Response.Redirect("detail.aspx?id="+id);

}
}

}
DoHope 2003-08-20
  • 打赏
  • 举报
回复
to qwbyxw(随缘)
DataSource ds = (DataSource)Session("MyDS")这句话通不过呀,我用的是vb的,你这是C#吧?vb如何写?
DoHope 2003-08-20
  • 打赏
  • 举报
回复
难道把一个页面的datagrid数据传递到另外一个页面就必须用session吗?
acewang 2003-08-20
  • 打赏
  • 举报
回复
数据量不大就试试session
DoHope 2003-08-20
  • 打赏
  • 举报
回复
各位高手,除了用session外,能不能像传参数那样直接给传过去呀,请指点。
DoHope 2003-08-20
  • 打赏
  • 举报
回复
不知怎么放呀?
wacle 2003-08-20
  • 打赏
  • 举报
回复
use session to save datagrid's datasource.for example
in page1:
session["dgrd_ds"]=ds;
in page2:
dataset ds=(dataset)session["dgrd_ds"];
qwbyxw 2003-08-20
  • 打赏
  • 举报
回复
用Session
Page1按下button1加上以下代码
Session("MyDS")=datagrid1.DataSource

Page2
Page_Load事件中取数据
DataSource ds = (DataSource)Session("MyDS");
if (ds != null)
{
datagrid1.DataSource = ds;
datagrid1.DataBind();
}





dongchuanlu 2003-08-20
  • 打赏
  • 举报
回复
不如将page1中datatable放到session中这样page2直接就可以用了
DoHope 2003-08-20
  • 打赏
  • 举报
回复
谢谢各位的帮助,给分。
分数不多,各位见谅了。
wacle 2003-08-20
  • 打赏
  • 举报
回复
yes. rebind datagrid is ok.
加载更多回复(20)

62,041

社区成员

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

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

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

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