Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET窗体链接上的参数_Asp.net - Fatal编程技术网

ASP.NET窗体链接上的参数

ASP.NET窗体链接上的参数,asp.net,Asp.net,好的,让我从我更喜欢MVC开始。我有一个试图添加分页的结果集。我真正想要的是页面上的上一个和下一个按钮,它们是链接控件。我需要这些控件回发到同一个页面,但是有一个类似page=4的查询参数。如何添加这些链接?我在链接上看到PostBackUrl属性。我应该只使用Request.Url并将其填充到PostBackUrl中吗?然后我必须在parm上进行字符串搜索。。。事情变得很糟糕。这是唯一的办法吗?我已经尝试过ViewState,请不要建议。。。就我而言,这是不可预测的垃圾。你说的是ASP.NET

好的,让我从我更喜欢MVC开始。我有一个试图添加分页的结果集。我真正想要的是页面上的上一个和下一个按钮,它们是链接控件。我需要这些控件回发到同一个页面,但是有一个类似page=4的查询参数。如何添加这些链接?我在链接上看到PostBackUrl属性。我应该只使用Request.Url并将其填充到PostBackUrl中吗?然后我必须在parm上进行字符串搜索。。。事情变得很糟糕。这是唯一的办法吗?我已经尝试过ViewState,请不要建议。。。就我而言,这是不可预测的垃圾。

你说的是ASP.NET Webforms还是MVC


如果你说的是网络表单,我认为你在这方面不会成功。我相信您需要通过会话或其他方式控制分页之间的移动,或者重新绑定每页的数据。

PostBackUrl属性用于跨页回发,您不希望这样做

如果要使用帖子,可以使用链接按钮,处理单击事件,然后重新绑定结果集。差不多

public void BackButton_Click(object sender, EventArgs e)
{
  // Get existing page from session, viewstate, etc
  // RebindGrid
}
如果要使用GET,可以使用超链接并将NavigateUrl属性设置为正确的Url。差不多

int page;
if( !int.TryParse(Request.QueryString["page"], out page) )
  page = 1;

if( page > 1 )
  BackUrl.NavigateUrl = Request.Path + "?page=" + (page-1).ToString();
else
  NextUrl.NavigateUrl = Request.path + "?page=" + (page+1).ToString(); 
// Note: not syntax/bounds checked

编辑: 也许你要找的是什么


我最后做的是在页面上为我需要传回的VAR设置隐藏,然后我阅读这些。这是像页码一样的东西,它允许我计算上一页和下一页。很抱歉提交我自己的答案,但这有点奇怪,我想我会告诉你我最终做了什么


由于某种原因,视图状态每次都是空的,所以对我没有好处。这是在一个DNN应用程序中,我不想花时间去弄清楚viewstate为什么会一团糟。

你想这样做吗?另外,你的字面意思是你需要一个帖子还是你想得到一个帖子?是的,如果你只是用QS重定向到另一个URL,我看不需要在这里发布帖子。请求的所有信息都在QS中-只需使用HTTP GET的常规链接。我真正想要的是只做回发,但附加一个GET参数。。。这两者都有。我将为你的答案打分,因为你提供了一些很棒的链接和想法。如果你还有其他问题,我会尽力帮助你。
Response.Redirect(HttpContext.Current.Request.Path + query, true);