Как получить доступ к странице «Скрытое поле родителя» из дочерняя страница

На главной странице ASP.NET у меня есть одно скрытое поле и одна кнопка. Когда пользователь нажимает кнопку, я показываю всплывающее окно (дочерняя страница). Мне нужно получить доступ к скрытому полю во время загрузки всплывающего окна. Как я могу получить доступ к скрытому полю с помощью c #?

1
задан Rob 16 August 2010 в 18:22
поделиться

2 ответа

Это ваш вопрос:

На главной странице есть сетка, которая содержит столбец флажка. Когда флажок строки выбран, добавьте соответствующий идентификатор в скрытое поле. Когда пользователь нажимает кнопку всплывающего окна, открывается окно, и выбранные идентификаторы передаются в новое окно. Вопрос в том, что идентификаторы слишком длинные для передачи в строке запроса.

Мое решение:

Я думаю, вы можете удалить скрытое поле и удалить все клиентские скрипты вашей всплывающей кнопки.

<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>
0
ответ дан 2 September 2019 в 22:08
поделиться

Ну, вы можете передать значение скрытого поля в строку запроса всплывающего окна. Примерно так:

<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"];

Я показываю простой код, вы должны добавить необходимые проверки или другие проверки в соответствии с вашим проектом.

2
ответ дан 2 September 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: