2010-08-16 1 views
1

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

+0

Пожалуйста, дайте нам контекст: Windows Forms , ASP.NET, MVC, WPF, Silverlight? –

ответ

2

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

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

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

+0

Значение, которое я храню в скрытом поле слишком долго. Я не могу использовать строку запроса. – Hukam

+0

Он может выйти из строкового значения строки запроса. Так что я собираюсь скрытое поле. – Hukam

+1

Затем вы можете сохранить его в 'Session [" hidden "] = XXXX;' –

0

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

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

Мое решение:

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

<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); 
} 

EDIT Ваш список данных должен выглядеть следующим образом:

<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

Большое спасибо Дэнни Чен.Это помогает мне много. :) – Hukam

+0

Как я могу получить значение SelectedRowsID в serveride.Its переменная Javascript. – Hukam

+0

Почему это элемент управления html? Поскольку вам нужно привязать данные к флажку, вам нужно использовать серверный элемент управления. См. Мое редактирование. –

Смежные вопросы