我想在登录页面中设置会话,并希望将一页girdview数据传递到另一个页面。
slno title author publication takenby
1 book1 author1 pub1 sendrequest (button)
上图显示了gridview。当我点击“请求书”按钮(第一个)时。它将重定向到sendrequest.aspx页面。并且必须带上那行数据(即)
slno=1
title=book1
Author=author1
publication=publ
我试过下面的代码 user.aspx.cs
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string user = (string)(Session["User"]);
if (e.CommandName.Equals("SendRequestCmd"))
{
if (user == null)
{
Session["slno"] = null;
Session["bookname"] = null;
var clickedRow = ((Button)e.CommandSource).NamingContainer as GridViewRow;
// now access the cells like this
SlNo = clickedRow.Cells[0].Text;
Session["slno"] = SlNo.ToString();
BookName = clickedRow.Cells[1].Text;
Session["bookname"] = BookName.ToString();
}
}
}
sendquest.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
string slno = "", bookname = "";
slno = (string)(Session["slno"]);
bookname = (string)(Session["bookname"]);
if (slno == null || bookname == null)
{
Response.Write("serial no: " + slno + "\nbookname: " + bookname);
}
}
protected void Logout()
{
Session.Clear();
}
但是我的错误
slno=(string)(Session["slno"]);
bookname=(string)(Session["bookname"]);
为什么呢?有谁纠正了吗? 否则说更好的方式?
答案 0 :(得分:0)
如果不发布错误,很难看出问题所在。您可以检查应用程序中是否启用了会话。
另一种方法(可能更好)是将id / slno(通过QueryString)传递到另一个页面,然后执行查找以在该阶段获取数据。
答案 1 :(得分:0)
我一定会为预订创建一个类型(Class)
具有slno title author publication
属性和
public class Booking
{
public Booking()
{
//
// TODO: Add constructor logic here
//
}
public int slno { get; set; }
public string Title { get; set; }
public string author { get; set; }
public string publication { get; set; }
}
设置预订类型对象的所有属性,并在会话中传递该对象
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string user = (string)(Session["User"]);
if (e.CommandName.Equals("SendRequestCmd"))
{
if (user == null)
{
Booking b = new Booking();
b.slno = clickedRow.Cells[0].Text;
b.Title = BookName.ToString();
Session["Booing"] = b;
}
}
}
并且在接收端只是会话值再次进入该对象的情况 并使用带有对象名称的点访问每个属性。
Booking b=(Booking)Session["Booking"]
int slno=b.slno;
string Title=b.Title;
如果没有发布错误无法给出建议或更正,我的答案就是如何使用会话从一个页面传递到另一个页面。
谢谢