2010-06-02 146 views

回答

4

您有几种选择:

1)在后面的代码,只需设置LinkBut​​ton的URL,以较短的地址,如果查询字符串包含一个“用户名”键:

if (Request.QueryString["UserID"] != null) { 
    this.LinkButton.PostBackUrl = "http://UserProfileManager.com"; 
} else { 
    // other address 
} 

2)发送UserID在隐藏字段中而不是查询字符串。

3)分离你的视图和编辑页面 - 把所有内容放在一个* .aspx中可能会导致更多的麻烦而不值得。

+0

我想在隐藏字段中发送UserID,但用户从gridview中选择要编辑的记录(编辑为超链接),其中DataNavigateUrlFields值设置为UserID,DataNavigateUrlFormatString设置查询字符串。我如何处理设置UserID到GridView中的隐藏字段? – user279521 2010-06-02 13:21:52

+0

把自己从'GridView'控件中解放出来很难 - 通常只需一分钱,一英镑。既然是这种情况,我建议使用选项1或3. – 2010-06-02 13:35:07

+0

选项1工作。但是,它需要在LinkBut​​ton的属性窗口中设置url;非常感谢。 – user279521 2010-06-02 14:00:59

0

查看请求对象 - 虽然我不记得确切的属性,但有一些行方案(这将返回“http://”) - 将会有一个或组合,会给你什么你需要。

进一步的研究 - 查看Request.Url属性。然后剥离查询字符串。我无法在uri/uricomponent类中看到确切的方法,以准确地为您提供您正在寻找的内容,但它不应该那么难。

0

在页面加载时,您可以将查询字符串提取到隐藏文本框中。

当用户点击该按钮清除文本框

如果用户导航离开在文本框中使用的串并追加查询字符串的URL。

我希望这有助于 SP

1

你不能真正从URL中移除一个查询字符串。我的意思是说没有可用的.remove()方法。 如果你仍然想这样做,你将不得不使用.substring()方法并手动完成。

只是一个可能证明有帮助的提示: 如果您使用QueryString值在同一页面上维护不同的状态,那么我宁愿建议您将这些值保留在页面上的ViewState中并相应地进行更改。这样你的URL将保持干净,用户不会伤害你的流量,并且工作得很好。

保重!

+0

这是一个dag gumm好主意。 – user279521 2010-06-02 12:42:25