none
ASP.NET 4.0で、JavaScriptからサーバのパーツの操作 RRS feed

  • 質問

  • ASP.NET4.0で、通常のhtml上のjavascriptからASP.NETの部品を操作することは
    できないでしょうか

    たとえば、以下のようにテーブルのセルをクリックされたときに
    グリッドビューのソート順を変えたいときなどですが・・・

    デザイン上の制約と他の箇所でも似たようなことをやってみたいため、質問しました

    できないようでしたらクライアントからASPパーツの操作はすっぱりあきらめて、
    しまおうと思うのですが
    他からの流用が多いためもし手軽にASPパーツの操作ができるようでしたら、

    <script type="text/javascript">
    function clickDate(){
    .......
    }

    function clickNum(){
    .....
    }
    </script>


    <form id="form1" runat="server">
    <table>
    <tr>
     <th onclick="clickDate()">日付</th><!-- ここをクリックするとGridView1のdateフィールド降順か昇順でソート -->
     <th onclick="clickNum()">番号</th>
    </tr>
    </table>

    <!--いろいろなhtmlの書き込み -->
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1">
     <Columns>
      <asp:BoundField DataField="date" HeaderText="date" SortExpression="date" />
      <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
     </Columns>
    </asp:GridView>

    </form>

    2013年9月4日 7:40

回答

  • > ASP.NET4.0で、通常のhtml上のjavascriptからASP.NETの部品を操作することは
    > できないでしょうか

    「ASP.NETの部品」というのが何で、「操作」というのが何なのかはっきりしませんが、前者を GridView に、後者をソートに限定していいのであれば、例えば Grid という JavaScript のライブラリがあります。詳しくは以下のページを見てください。

    GridView のヘッダ、列を固定(その 2)
    http://surferonwww.info/BlogEngine/post/2013/02/04/freezing-header-and-column-of-gridview-by-using-javascript-gridjs.aspx

    他にも探せば見つかると思います。

    • 回答の候補に設定 星 睦美 2013年9月9日 4:33
    • 回答としてマーク いちろう 2013年9月13日 14:58
    2013年9月4日 8:17
  • 質問をそのまま解釈するならば、答えは”できない”になると思います。

    ・”ASP.NETの部品”はブラウザ(クライアント)上では存在しません。
    ・Javascriptはブラウザ上で動作します。
    つまり、存在しないものは操作しようがありません。

    ただ、ブラウザ上に”ASP.NETの部品”はありませんが、そこから生成されたHTML要素は存在します。
    それをJavascriptから操作することは可能です。
    単純なソートであれば、JavascriptでDOMを操作して実現できます。
    再クエリが必要なケースだと、Javascriptからポストバックしたり、AJAXで再取得する必要が出てきます。

    ところで、質問の内容から、ブラウザ上で実際に表示されている状態のソースを見たことがないのだと推測しました。
    Javascriptでの操作をするのであれば、まずは、実際に表示されている状態のソースを見ることをお勧めします。

    • 回答の候補に設定 星 睦美 2013年9月9日 4:33
    • 回答としてマーク いちろう 2013年9月13日 14:58
    2013年9月6日 0:39

すべての返信

  • > ASP.NET4.0で、通常のhtml上のjavascriptからASP.NETの部品を操作することは
    > できないでしょうか

    「ASP.NETの部品」というのが何で、「操作」というのが何なのかはっきりしませんが、前者を GridView に、後者をソートに限定していいのであれば、例えば Grid という JavaScript のライブラリがあります。詳しくは以下のページを見てください。

    GridView のヘッダ、列を固定(その 2)
    http://surferonwww.info/BlogEngine/post/2013/02/04/freezing-header-and-column-of-gridview-by-using-javascript-gridjs.aspx

    他にも探せば見つかると思います。

    • 回答の候補に設定 星 睦美 2013年9月9日 4:33
    • 回答としてマーク いちろう 2013年9月13日 14:58
    2013年9月4日 8:17
  • 質問をそのまま解釈するならば、答えは”できない”になると思います。

    ・”ASP.NETの部品”はブラウザ(クライアント)上では存在しません。
    ・Javascriptはブラウザ上で動作します。
    つまり、存在しないものは操作しようがありません。

    ただ、ブラウザ上に”ASP.NETの部品”はありませんが、そこから生成されたHTML要素は存在します。
    それをJavascriptから操作することは可能です。
    単純なソートであれば、JavascriptでDOMを操作して実現できます。
    再クエリが必要なケースだと、Javascriptからポストバックしたり、AJAXで再取得する必要が出てきます。

    ところで、質問の内容から、ブラウザ上で実際に表示されている状態のソースを見たことがないのだと推測しました。
    Javascriptでの操作をするのであれば、まずは、実際に表示されている状態のソースを見ることをお勧めします。

    • 回答の候補に設定 星 睦美 2013年9月9日 4:33
    • 回答としてマーク いちろう 2013年9月13日 14:58
    2013年9月6日 0:39
  • フォーラム オペレーターの星 睦美です。

    いちろう さんの質問にコミュニティの回答者から返信があります。
    内容を確認いただいて、さらに質問がありましたら返信をお願いします。

    参考になる情報には、投稿者から[回答としてマーク]いただければ幸いです。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2013年9月9日 4:36
  • 返事が遅くなってしまい申し訳ありません

    JavaScriptt側とASP側の分離が出来ていなかったようです

    2013年9月13日 14:59