Как сказал @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;