2012-03-07 7 views
0

javascriptを使用してユーザーコントロールページの親ページに非表示のコントロールIDを取得する方法を教えてください。ページに隠された入力コントロールがあります。このページで使用されているユーザーコントロールページで、このコントロールに値を割り当てたいと思います。そのascxページコントロール。javascriptを使用してユーザーコントロールページの親ページに非表示のコントロールIDを取得する方法

<input type="hidden" runat="server" name="isChanged" id="isChanged" value="0" /> 

答えて

1

次のようにのように。

var element = $("input[id$=isChanged]")[0]; 

これは、あなたのページに「isChanged」で終わるIDを持つ入力が1つしかないことを前提としています。私たちが使用する理由は、aspがct100 $ placeholder1 $ mypanel $ isChangedのようなコントロールのクライアント側IDを作成するためです。

より堅牢なソリューションは、ユーザーコントロールのプロパティを持っていることであろう(たとえば、「をClientIdOfHiddenField」)あなたが持っていることができ、ユーザーコントロールのマークアップに

protected void Page_Load(object sender, EventArgs e) 
{ 
    UserControl1.ClientIdOfHiddenField = isChanged.ClientID; 
} 

、その後をPage_Loadであなたの親ページから設定されています

var element = document.getElementById("<%= ClientIdOfHiddenField %>"); 
+0

あなたの2番目の方法が私の問題を短絡するのを助けてほしい。どうもありがとうございます。 – Geeth

1

登録するあなたは、セレクタ 'で終わる' を使用して、この使用してjQueryの操作を行うことができ

isChanged.ClientID- is serverside property... so this will work for you 

document.getElementById("<%=isChanged.ClientID %>"); 
+0

コントロールは、ユーザーコントロールが呼び出される親ページにあります。エラーページコントロールが存在しないことを示すページ自体をロードする – Geeth

+0

彼の質問が正しく理解されていると仮定すると、ユーザーコントロール内からアイテムにアクセスしようとしている間、非表示フィールドがページ上にあります。この場合、 'isChanged'は表示されません。 – SynXsiS

+0

@Geetha - 彼はユーザーコントロールでのみスクリプトを書く必要があり、その変数を公開する必要があります... javascript変数はグローバルでvaribleは親ページで簡単に利用できます...今すぐに取得しました –

0

あなたはjQueryのを使用している場合は、使用することができるはず

var hidden = $('input[id$="isChanged"]'); 

@Pranay Ranaの答えはうまくいくはずです。

関連する問題