首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

进来某页面时有传参,但在该页面点查询后由于不传了报错

2012-12-16 
进入某页面时有传参,但在该页面点查询后由于不传了报错形容的有点混乱。大意是这样的。我按如下方法跳转到某

进入某页面时有传参,但在该页面点查询后由于不传了报错
形容的有点混乱。大意是这样的。
我按如下方法跳转到某个页面
onclick="location.href='project_alcohol.aspx?pjid=<%= base.pjid %>';
可是在这个页面中需要一个查询按钮,按某些条件进行查询。但是点了查询后重新Pageload了,但是由于没有传一个pjid过来,所以会按写的重新报错。
我怎么样才能在点查询进入该页面时使pjid=之前的不变呢。菜鸟啊,愁死了,请大家指点。最好能详细描述,不然可能会看不懂
[最优解释]
第一次有传参数的时候,把参数保存起来。
比如:
Session["pid"] = Request.QueryString["pjid"];

读取的时候做个判断。
string pid="":
if(Request.QueryString["pjid"]!=null)
{
pid = Request.QueryString["pjid"];
}
else if(Session["pid"]!=null)
{
pid =Session["pid"].ToString();
}

[其他解释]
查询按钮中
绑定完后
 Response.Redirect("index.aspx?pjid=" + Request.QueryString["pjid"]);方便接受

或者用viewstate存放这个pjid
[其他解释]
这个就是页面数据保存问题,使用ViewState即可


public void Page_Load(object sender,EventArgs e)
{
        if(!IsPostBack)
        {
                ViewState["ID"] = Request.QueryString["pjid"].ToString();
        }
}

然后你在按钮啊什么的事件中直接使用ViewState["ID"]即可
public void Button1_Click(object sender,EventArgs e)
{
        string strSQL = "select * from 表名 where ID='"+ViewState["ID"]+"'";
}
[其他解释]
表述可能不准确,请高人帮下啊
[其他解释]
常用的页面内数据传递使用ViewState,页面间数据传递Session啊等等的。
这些都是基本的。
[其他解释]
这个页数你是需要在当前页面记录的。 你可以看看asp.net 有哪些缓存技术。
[其他解释]

引用:
查询按钮中
绑定完后
 Response.Redirect("index.aspx?pjid=" + Request.QueryString["pjid"]);方便接受

或者用viewstate存放这个pjid

用您这方法我还能查询么,是不是又跳回来了呀
[其他解释]
引用:
这个就是页面数据保存问题,使用ViewState即可


public void Page_Load(object sender,EventArgs e)
{
        if(!IsPostBack)
        {
                ViewState["ID"] = Request.QueryString["pjid"].ToSt……


还比较迷糊,我再研究研究
[其他解释]

用您这方法我还能查询么,是不是又跳回来了呀 
//////////
你不是说点了查询后重新Pageload了/
在请求一下页面。Id不是又有了。
[其他解释]
viewstate
[其他解释]
引用:
用您这方法我还能查询么,是不是又跳回来了呀 
//////////
你不是说点了查询后重新Pageload了/
在请求一下页面。Id不是又有了。


我觉得按您这方法,查询前面那些选项的值都没记没传了,出来的页面应该和没查询的一样。不知道您理解我说的意思没。
------其他解决方案--------------------


引用:
第一次有传参数的时候,把参数保存起来。
比如:
Session["pid"] = Request.QueryString["pjid"];

读取的时候做个判断。
string pid="":
if(Request.QueryString["pjid"]!=null)
{
pid = Request.QueryString["pjid"];
}
else if(Session[……

您好,用了您的方法基本能达到效果,只是我查了一次后,再改条件点了查询后就不对了,好像session里面的也是空的了,请指点。
[其他解释]
引用:
第一次有传参数的时候,把参数保存起来。
比如:
Session["pid"] = Request.QueryString["pjid"];

读取的时候做个判断。
string pid="":
if(Request.QueryString["pjid"]!=null)
{
pid = Request.QueryString["pjid"];
}
else if(Session[……

哦,又看了一遍,原因是我这次的QueryString中么有pjid了,谢谢您,我再看看O(∩_∩)O哈!
[其他解释]
引用:
引用:第一次有传参数的时候,把参数保存起来。
比如:
Session["pid"] = Request.QueryString["pjid"];

读取的时候做个判断。
string pid="":
if(Request.QueryString["pjid"]!=null)
{
pid = Request.QueryStrin……


那你就要注意 Session["pid"] 在什么地方赋值,什么条件赋什么值,多调试、多测试。

热点排行