На главной странице ASP.NET у меня есть одно скрытое поле и одна кнопка. Когда пользователь нажимает кнопку, я показываю всплывающее окно (дочерняя страница). Мне нужно получить доступ к скрытому полю во время загрузки всплывающего окна. Как я могу получить доступ к скрытому полю с помощью c #?
Это ваш вопрос:
На главной странице есть сетка, которая содержит столбец флажка. Когда флажок строки выбран, добавьте соответствующий идентификатор в скрытое поле. Когда пользователь нажимает кнопку всплывающего окна, открывается окно, и выбранные идентификаторы передаются в новое окно. Вопрос в том, что идентификаторы слишком длинные для передачи в строке запроса.
Мое решение:
Я думаю, вы можете удалить скрытое поле и удалить все клиентские скрипты вашей всплывающей кнопки.
<asp:button id="PopupButton" runat="server" Text="Click to pop up" />
Добавьте серверное событие кнопки, например:
void PopupButton_Onclick(object sender, EventArgs e)
{
string IDs = CollectTheSelectedIDsInTheGridView();
Session["IDs"] = IDs;
string js = @"<script type='text/javascript'>
window.open('Child.aspx');
</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(),"showChild",js);
}
ИЗМЕНИТЬ Ваш список данных должен выглядеть следующим образом:
<table>
<asp:Repeater ID="myData" runat="server">
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="selectedFlag" runat="server" Checked=<%# Eval("Checked") %> /></td>
<td><asp:Label ID="dataText" runat="server" Text=<%# Eval("TextData") %>></asp:Label></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
Ну, вы можете передать значение скрытого поля в строку запроса всплывающего окна. Примерно так:
<asp:button id="ButtonInMainPage" runat="server" onclick="Popup();return false;" />
<asp:hidden id="hiddenValue" runat="server" />
<script type="text/javascript">
function Popup()
{
window.open('Child.aspx?hiddenValue='+document.getElementById('<%=hiddenValue.ClientID%>').value);
}
В дочерней page_load:
string hiddenValue = Request.QueryString["hiddenValue"];
Я показываю простой код, вы должны добавить необходимые проверки или другие проверки в соответствии с вашим проектом.