2012-05-01 25 views
0

ユーザーコントロールに非表示のフィールドがあります。事は、私は、クライアント側のコードにCLIENTID隠しフィールドを取得しようとすると、それは未定義であるということですユーザーコントロールのHiddenfieldは、クライアント側でアクセスできません

aClickSort1.HRef = string.Format("javascript:SortImage({0},{1});", divArrowUp1.ClientID, hiddenSort1.ClientID); 

:実行時に、私は隠しフィールドは、このようなアンカータグにClientIDを割り当てます。

どのようにクライアントサイドのコードにアクセスできますか?

ps。 HiddenFieldは、ユーザーコントロールに

よろしくÖrvar

答えて

0

であるあなたは、サーバー側のコントロールにVisible="false"を設定すると、それはクライアントにまったく送信されません。

代わりに、style="display: none;"を設定するか、CSSを使用して設定すると、ブラウザに送信されても​​非表示になります。

0

コンテナです。あなたのようなものがある場合:

<asp:panel id="panel1" runat="server" Visible="false"> 
    <asp:hiddenfield id="hiddenfield1 runat="server" value="123"/> 
</asp:panel> 

物事がvisible="false"属性を持つサーバー側のコントロールのためにレンダリングされていないとしてあなたはpanel1で何かにアクセスすることはできません。

あなたはstyle="display:none;"divにそれを設定するか、またはちょうどそれがとにかく表示されていないとしてnon-visible容器の外にhiddenfieldを残すことができます。

+0

@TheVillageldiot。 Re:どうやら表示されていないので、非表示のコンテナの外に隠しフィールドを残してください。それは、私の隠されたフィールドがどのように実装されているかです。 –

+0

コントロールのマークアップ内の行またはコントロールを含むページに行を書いていますか?私はアンカーをクリックするとcontrol'sマークアップ – TheVillageIdiot

+0

が、そこには問題 –

0

hiddenSort1のClientIdModeをStaticに設定する必要があります。

<asp:HiddenField ID="hiddenSort1" runat="server" ClientIDMode="Static" /> 

JavaScriptから:

var hiddenSort1 = document.getElementById('hiddenSort1'); 
+0

ClientIdModeを静的に設定しようとしましたが、機能しませんでした。 'ctl00_mainWebPartManager_wp523183745_wp321661269_radPanelSettings_i0_hiddenSort1'は定義されていません –

+0

ClientIDModeを静的に設定すると、HTMLページで、要素shuldがaspxページと同じIDを持つことを意味します。だから 'ctl00_mainWebPartManager_wp523183745_wp321661269_radPanelSettings_i0_hidde nSort1'はhidde nSort1のIDではありません。hidde nSort1のIDをhtmlで確認してください(ブラウザで)。 hidde nSort1要素IDとは何ですか? –

0

は私が間違っているなら、私を修正しますが、Idが生成isn'tとユーザーコントロールでそれを隠しフィールドを持っている場合は、このよう

あなたのIDを取得します:

myUserControlName$myHiddenFieldId 

関連する問題