トップ回答者
ASP.NET 4.0で、JavaScriptからサーバのパーツの操作

質問
-
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>
回答
-
> 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他にも探せば見つかると思います。
-
質問をそのまま解釈するならば、答えは”できない”になると思います。
・”ASP.NETの部品”はブラウザ(クライアント)上では存在しません。
・Javascriptはブラウザ上で動作します。
つまり、存在しないものは操作しようがありません。ただ、ブラウザ上に”ASP.NETの部品”はありませんが、そこから生成されたHTML要素は存在します。
それをJavascriptから操作することは可能です。
単純なソートであれば、JavascriptでDOMを操作して実現できます。
再クエリが必要なケースだと、Javascriptからポストバックしたり、AJAXで再取得する必要が出てきます。ところで、質問の内容から、ブラウザ上で実際に表示されている状態のソースを見たことがないのだと推測しました。
Javascriptでの操作をするのであれば、まずは、実際に表示されている状態のソースを見ることをお勧めします。
すべての返信
-
> 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他にも探せば見つかると思います。
-
質問をそのまま解釈するならば、答えは”できない”になると思います。
・”ASP.NETの部品”はブラウザ(クライアント)上では存在しません。
・Javascriptはブラウザ上で動作します。
つまり、存在しないものは操作しようがありません。ただ、ブラウザ上に”ASP.NETの部品”はありませんが、そこから生成されたHTML要素は存在します。
それをJavascriptから操作することは可能です。
単純なソートであれば、JavascriptでDOMを操作して実現できます。
再クエリが必要なケースだと、Javascriptからポストバックしたり、AJAXで再取得する必要が出てきます。ところで、質問の内容から、ブラウザ上で実際に表示されている状態のソースを見たことがないのだと推測しました。
Javascriptでの操作をするのであれば、まずは、実際に表示されている状態のソースを見ることをお勧めします。