2010-08-16 136 views
1

在我的ASP.NET主頁中,我有一個隱藏字段和一個按鈕。當用戶點擊按鈕時,我顯示彈出窗口(子頁面)。在彈出窗口加載時,我需要訪問隱藏字段。我如何使用c#訪問隱藏字段?如何從子頁面訪問父頁面的隱藏字段

+0

請給我們的背景:Windows窗體,ASP.NET,MVC,WPF,Silverlight? – 2010-08-16 06:14:51

回答

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 2010-08-16 06:32:53

+0

它可能會退出查詢字符串的最大值。所以我要去隱藏字段。 – Hukam 2010-08-16 06:34:39

+1

然後你可以將它存儲在'Session [「hidden」] = XXXX;' – 2010-08-16 06:35:03

0

這是你的問題:

在主頁上,有一個GridView,它包含一個複選框列,當行的複選框被選中,相應的ID添加到一個隱藏字段。當用戶單擊彈出式按鈕時,將打開一個窗口,並將選定的ID傳遞到新窗口。問題是ID太長而無法傳入查詢字符串。

我的解決辦法:

我想你可以刪除隱藏字段,並刪除您的彈出按鈕的所有客戶端腳本。

<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

非常感謝Danny chen.It幫助我很多。 :) – Hukam 2010-08-16 08:45:35

+0

我怎樣才能在serverside.Its Javascript變量中獲得SelectedRowsID值。 – Hukam 2010-08-16 13:29:02

+0

爲什麼它是一個html控件?由於您需要將數據綁定到複選框,因此您需要使用服務器控件。看我的編輯。 – 2010-08-17 03:58:20

相關問題