正如@TheVillageIdiot 所说,url 重写是一种更好的方法。但是您也可以使用跨页发布功能。一探究竟:
标记
<asp:HiddenField ID="HiddenField1" runat="server" ClientIDMode="Static" />
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Second.aspx" Text='<%# Bind("Text") %>' OnClientClick='<%# "LinkButton1_Click(\"" + Eval("Value") + "\")" %>' />
</ItemTemplate>
</asp:Repeater>
<script type="text/javascript">
function LinkButton1_Click(v) {
document.getElementById('HiddenField1').value = v;
}
</script>
正如您在前面的代码片段中看到的,您必须添加一个隐藏字段以通过简单的 javascript 存储所选项目。我还定义了一个属性,调用SelectedValue
它来获取另一边隐藏字段的值。
代码背后
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new[] {
new { Text = "Item 1", Value = "Item 1" },
new { Text = "Item 2", Value = "Item 2" },
new { Text = "Item 3", Value = "Item 3" }
};
Repeater1.DataBind();
}
public string SelectedValue
{
get { return HiddenField1.Value; }
}
第二页
将以下指令添加到目标页面。
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
PreviousPage
最后,您可以通过类的属性访问上一页Page
。
string value = ((_Default)this.PreviousPage).SelectedValue;