2011-01-29 9 views
0

私のdisplaycloud.aspxページには、タグクラウドを表示するための2つのデータバインドされたデータリストが含まれています。データリストには、何もデータベースから取得されない場合は空のラベルを保持するEmptyDataTemplateがあります。私はcompanyadminページの下のコードを使用して、 'Please Log a Story'というメッセージを表示しようとしていますが、エラーが発生しています(コントロールは同じページにありません)。 companyadmin.aspxのdisplaycloud.aspxからラベルpositive_tagsとnegative_tagsを参照するにはどうすればよいですか?また、EmptyDataTemplateがページの一番下に表示されているように実行されない場合、リダイレクトしたいと思います。あなたの助けを前もって多くの感謝します!JavaScript:別のフォームからコントロールを参照する

displaycloud.aspx:

<EmptyDataTemplate> 
    <asp:Label ID="positive_tags" runat="server" Text=""></asp:Label> 
</EmptyDataTemplate> 

<EmptyDataTemplate> 
    <asp:Label ID="negative_tags" runat="server" Text=""></asp:Label> 
</EmptyDataTemplate> 

companyadmin.aspx:

<script type="text/javascript"> 
function validate() { 

    var negative_tags = document.getElementById('negative_tags').innerText; 
    var positive_tags = document.getElementById('positive_tags').innerText; 

    if (negative_tags == "" && positive_tags == "") { 
     (function($) { 
      $.jGrowl("Please Log a Story", { theme: 'smoke', closer: true }) 
      return false; 

     })(jQuery); 

     return true; 
    } 

} 
</script> 

さらにASPページダウン:

<asp:Button ID="LinkButtonTagCloud" runat="server" Text="TAG CLOUD" onClientClick="javascript:return validate();" PostBackUrl='<%# string.Format("~/displaycloud.aspx?project={0}&id={1}", Eval("ProjectName"), Eval("ProjectID")) %>' /> 
+0

ページ1で実行されているjavascriptはページ2にある要素にアクセスする必要がありますか? – Ravikiran

+0

はい。それは可能ですか? – MiziaQ

答えて

0

これを試してみてください:

<script type="text/javascript"> 
    var negative_tags; 
    var positive_tags; 

    jQuery.ajax({ 
     url: 'displaycloud.aspx', 
     success: function(response, status, xhr) { 
      if (status != "error") { 
      positive_tags = $('#positive_tags', response).text(); 
      negative_tags = $('#negative_tags', response).text(); 
     }}, 
     async: false 
    });   

    alert("Positive tags: " + positive_tags); 
    alert("Negative tags: " + negative_tags); 

</script> 

私はしかし、パフォーマンスとアプリケーションの設計上の理由から、サーバーから直接RAW形式(アヤックスによるJSON)でこのデータを取得することをお勧めいたします:

  1. 上記の方法は、解析する前に、メモリ全体displaycloud.aspxページをロードそれは役に立たないオーバーヘッドです。
  2. 一般的に、エンジニアリングの観点から、プレゼンテーション、ビジネスロジックとデータ、生データソースなどさまざまなアプリケーションレイヤを定義することを検討する必要があります。特定のケースでは、コンテンツ(基本的に、プレゼンテーションレイヤの一部を他のパートに依存させる)検索するデータは、明らかにビジネスレイヤーに属します。
関連する問題