如何使用会话变量asp.net c#
我似乎无法将变量传递到下一页。谁能告诉我我做错了什么如何使用会话变量asp.net c#,c#,asp.net,session-variables,C#,Asp.net,Session Variables,我似乎无法将变量传递到下一页。谁能告诉我我做错了什么 var finalValue = value * sqlCouponValue; finalValue = Math.Round(finalValue, 2); Session["discountedOrderTotal"] = finalValue.ToString(); 我将在下一页再次尝试调用它: e.Row.Cells[4].Text = "$" + Session["discountOrderTotal"]; 有人有什么想法吗?
var finalValue = value * sqlCouponValue;
finalValue = Math.Round(finalValue, 2);
Session["discountedOrderTotal"] = finalValue.ToString();
我将在下一页再次尝试调用它:
e.Row.Cells[4].Text = "$" + Session["discountOrderTotal"];
有人有什么想法吗?我以前从未使用过会话变量,也不知道为什么它只是返回一个
$
。任何帮助都将不胜感激。谢谢 你有不同的名字。DescentedOrderTotal vs DescentOrderTotal首先要注意的是会话的名称。它应该是相同的,当您检索会话时,您需要指定类型,因为它返回一个对象。所以,当你把这个调到下一页时,试试这个
e.Row.Cells[4].Text = "$" + Session["discountedOrderTotal"].ToString();
传输请求ID
员工姓名
公共部分类视图:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
List List2=新列表();
TransferDAL obj1=新的TransferDAL();
List2=obj1.view();
Gridview1.DataSource=List2;
Gridview1.DataBind();
}
}
受保护的void Gridview1\u SelectedIndexChanged(对象发送方,事件参数e)
{
GridViewRow SelectedRow=Gridview1.SelectedRow;
标签id1=(标签)选择了drow.FindControl(“Label1”)作为标签;
intID2=Convert.ToInt32(id1.Text);
Label id3=(Label)选择了drow.FindControl(“Label3”)作为标签;
字符串id4=Convert.ToString(id3.Text);
会话[“id”]=id2;
会话[“名称”]=id4;
回复。重定向(“Approve.aspx”);
}
}
出了什么问题?有错误吗?也许您需要强制转换,例如:“$”+(字符串)会话[“discountOrderTotal”]
您可能想看看如何使用,以帮助避免会话状态管理中的此问题和其他问题发生在最好的usi中我更喜欢将类对象持久化为会话变量,这样我就可以利用强类型属性,有时只需要额外的一组眼睛。确保你有规律地休息,即使每15-20分钟左右只需要5分钟来重新聚焦你的眼睛。
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:Table ID="Table1" runat="server">
<asp:TableRow>
<asp:TableCell>Transfer Request ID</asp:TableCell>
<asp:TableCell> <asp:Label ID="Label1" runat="server" Text='<%# Eval("TransferRequestId") %>'></asp:Label></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Employee Name</asp:TableCell>
<asp:TableCell> <asp:Label ID="Label3" runat="server" Text='<%# Eval("EmployeeName") %>'></asp:Label></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell><asp:Button ID="Button1" runat="server" Value="APPROVE" Text="Approve" OnClick="Button1_Click"></asp:Button></asp:TableCell>
<asp:TableCell><asp:Button ID="Button2" runat="server" value="REJECT" Text="Reject" Onclick="Button2_Click"></asp:Button></asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:Content>
public partial class Approve : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Convert.ToString(Session["id"]);
Label3.Text = Convert.ToString(Session["name"]);
}
protected void Button1_Click(object sender, EventArgs e)
{
int id1=Convert.ToInt32(Session["id"]);
TransferDAL dalob = new TransferDAL();
int x = dalob.updateapprove(id1);
Response.Redirect("View.aspx");
}
protected void Button2_Click(object sender, EventArgs e)
{
int id1 = Convert.ToInt32(Session["id"]);
TransferDAL dalob = new TransferDAL();
int r = dalob.updatereject(id1);
Response.Redirect("View.aspx");
}
}
public partial class View : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
List<TransferBO> List2 = new List<TransferBO>();
TransferDAL obj1 = new TransferDAL();
List2 = obj1.view();
Gridview1.DataSource = List2;
Gridview1.DataBind();
}
}
protected void Gridview1_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow SelectedRow = Gridview1.SelectedRow;
Label id1 = (Label)SelectedRow.FindControl("Label1") as Label;
int id2 = Convert.ToInt32(id1.Text);
Label id3 = (Label)SelectedRow.FindControl("Label3") as Label;
string id4 = Convert.ToString(id3.Text);
Session["id"] = id2;
Session["name"] = id4;
Response.Redirect("Approve.aspx");
}
}