【質問】ASP.NETスレ ..
[2ch|▼Menu]
437:nobodyさん
09/11/28 13:32:50
>>435
Now()が、DateTime.Now()かSQL文のNow()が不明だからなんとも。
単に編集ボタン押した時に、その日付を入れたいなら>>436で。
ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。

GridViewにDataBindして編集したときって、
編集された内容をViewStateで保持し続けて、
Update後もUpdate前のデータを引きずるんだっけか?
それでSQL文のNow()が反映されないという意味なら、
DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。

INSERT **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな

438:nobodyさん
09/11/28 13:34:04
×INSERT **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
○UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな



439:nobodyさん
09/11/28 16:55:14
>>437
ありがとうございます。
> ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
> 日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。

この方法で行きたいです。

> GridViewにDataBindして編集したときって、
> 編集された内容をViewStateで保持し続けて、
> Update後もUpdate前のデータを引きずるんだっけか?
> それでSQL文のNow()が反映されないという意味なら、
> DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。

たぶん、この現象でUpdate後にDBにNow()が反映されないです。

440:nobodyさん
09/11/28 16:56:18
>>437
以下のテストコード書いてみました。
テーブル名:名簿3
ID(主キー):オートナンバー型(長整数型)
名前:テキスト型(サイズ50)
年齢:数値型(整数型)
作成日時:日付/時間型
更新日時:日付/時間型

<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"

  UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = Now() WHERE [ID] = ?">

  <UpdateParameters>
     <asp:Parameter Name="名前" Type="String" />
     <asp:Parameter Name="年齢" Type="Int16" />
     <asp:Parameter Name="作成日時" Type="DateTime" />
     <asp:Parameter Name="ID" Type="Int32" />
  </UpdateParameters>
</asp:AccessDataSource>

コードを書いて、動かしてみましたが
> UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
> INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな
のアドバイスをどう反映させれば良いのかわかりません。

上記コードの動きは、エラーは何も表示されず、更新内容がDBに反映されない。
もちろん「更新日時」情報も更新されず、以前の情報が入ったままです。

441:nobodyさん
09/11/28 18:31:02
>>440
まずデータベースに更新されないところを解決してみたら?
自分はAccessではやったことがないので、よくわからんが。
更新時間の表示はそれからでも遅くないぞ。

442:435
09/11/28 19:11:41
>>441
アドバイスありがとうございます。
正しく動くコードを書いてみました。
以下のコードだと、修正内容でDBが更新され、GridViewへも更新された内容が表示されます。

<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"

  UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = ? WHERE [ID] = ?">
  
  <UpdateParameters>
    <asp:Parameter Name="名前" Type="String" />
    <asp:Parameter Name="年齢" Type="Int16" />
    <asp:Parameter Name="作成日時" Type="DateTime" />
    <asp:Parameter Name="更新日時" Type="DateTime" />
    <asp:Parameter Name="ID" Type="Int32" />
  </UpdateParameters>
</asp:AccessDataSource>

443:nobodyさん
09/11/29 16:12:41
教えてください。

visual web developer 2008で

新しいウェブサイトの作成→F5キーで「デバッグを開始」
をすると、

デバッグを有効にするためにweb.configを変更する
のダイアログ表示後、

LMS
c:\マイドキュメント〜\http:\localhost:3745\(作った新しいウェブサイト名)\ cntaints an invalid path.

というダイアログが表示してしまいます。
どういった現象で、どう解決したらよいのでしょうか?

444:nobodyさん
09/11/29 16:28:31
c:\マイドキュメント〜\http:\localhost:3745\(作った新しいウェブサイト名)\
ってディレクトリっていうかフォルダが存在していないとか?
そもそもディレクトリ名にコロンとか無理でしょ

445:nobodyさん
09/11/29 16:39:19
>>442
AccessじゃなくてSQLExpress(無料のやつ)で悪いんだけど、こんなんで動作してるな。
しかも、編集したあとはちゃんと日付をもってきてくれてるから、
あとから編集後の行だけ再取得するクエリとか記述しなくてもいいみたいだ。

ちなみに>>437に書いたのは、.xsd等を使って自分でDataSetを定義して、
Update後に、Updateした行を再取得する方法。

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
 ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
 SelectCommand="SELECT * FROM [TableMaster]"
 UpdateCommand="UPDATE TableMaster SET TestInt = @TestInt, DateTime = { fn NOW() } WHERE (TestMasterID = @TestMasterID)">
</asp:SqlDataSource>

446:435
09/11/29 17:56:49
>>445
アドバイスありがとうございます。
当方でもVWD2005 + SQL Server2005でMS Accessと同じテーブルを作成し確認してみました。
[更新日時] = {fn Now()} の記述で問題なく、更新日時に現在に日時が入力されGridViewに
表示されました。

現在の環境はSQL Serverは使えず、MS AccessをDBとして使用しています。

<asp:SqlDataSource ID="SqlDataSource11" runat="server" ConnectionString="<%$ ConnectionStrings:myDb %>"

  SelectCommand="SELECT [ID], [名前], [年齢], [作成日時], [更新日時] FROM [名簿3]"
  UpdateCommand="UPDATE [名簿3] SET [名前] = @名前, [年齢] = @年齢, [作成日時] = @作成日時, [更新日時] = {fn Now()} WHERE [ID] = @ID">

  <UpdateParameters>
    <asp:Parameter Name="名前" Type="String" />
    <asp:Parameter Name="年齢" Type="Int32" />
    <asp:Parameter DbType="Datetime" Name="作成日時" />
    <asp:Parameter Name="ID" Type="Int32" />
  </UpdateParameters>
</asp:SqlDataSource>

447:435
09/11/29 17:59:01
>>445
ちなみに、新規データ「挿入」時の「作成日時」「更新日時」の自動登録は以下のコードで
MS Accessで正しく動作しています。

<asp:AccessDataSource ID="AccessDataSource12" runat="server" DataFile="~/App_Data/MyDB.mdb"
  InsertCommand="INSERT INTO [名簿3] ([名前], [年齢], [作成日時], [更新日時]) VALUES (?, ?, Now(), Now())"
  SelectCommand="SELECT [名前], [年齢] FROM [名簿3]">
  <InsertParameters>
    <asp:Parameter Name="名前" Type="String" />
    <asp:Parameter Name="年齢" Type="Int16" />
  </InsertParameters>
</asp:AccessDataSource>

448:nobodyさん
09/11/29 18:20:39
>>447
んじゃ、とりあえずの解決?

449:435
09/11/29 18:36:02
>>448
いいえ、解決しておりません。
MS Accessで新規データの「挿入」時の作成日時、更新日時の自動設定はうまく動くので
すが、GridViewの「編集」「更新」時の更新日時の自動設定を行う方法がわからなくて
困っております。ご指導よろしくお願いします。

450:nobodyさん
09/11/29 19:26:54
>>449
SQLと同じように設定してもだめなの?

451:435
09/11/29 20:01:30
>>450
そうなんです。AccessをSQL Serverと同じように設定してもだめなんです。

<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"

  UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = Now() WHERE [ID] = ?">

  <UpdateParameters>
     <asp:Parameter Name="名前" Type="String" />
     <asp:Parameter Name="年齢" Type="Int16" />
     <asp:Parameter Name="作成日時" Type="DateTime" />
     <asp:Parameter Name="ID" Type="Int32" />
  </UpdateParameters>
</asp:AccessDataSource>

[更新日時] = Now()に記述しても、動かすとエラーメッセージは出なくて、
GridViewの「編集」「更新」で修正した内容がAccess DBに反映されず、GridViewの表示
も当然更新前の内容が表示されるんです。
どこに問題がありそうでしょうか?

452:nobodyさん
09/11/29 20:40:39
Access持ってないから、テストできないんだよな
MSDNでもらったのにOfficeあったかな・

453:435
09/11/29 21:05:19
>>452
是非Access探してみてください。
Access2007の場合は、.accdtファイルはASP.NETで認識してくれません。
Access2002-2003の.mdbファイルで保存するとASP.NETが認識してくれます。

454:nobodyさん
09/11/29 22:18:26
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ? ,[作成日時] = ? & left(?,0) , [更新日時] = now() WHERE [ID] = ?"
とかにすると動くけど、いらないパラメータ減らしたりすると動かないー

455:nobodyさん
09/11/29 22:22:51
?とかなってて、個別にフィールド名を指定できないから、
なんかの順番で自動的に埋めてくみたいになってんじゃないかね。
だから順番とか、数の不一致とかでエラーになるとか。

456:435
09/11/29 23:07:35
>>454
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ? ,[作成日時] = ? & left(?,0) , [更新日時] = now() WHERE [ID] = ?"
で希望通りの動きをしてくれる様になりました。ありがとうございました。
「 & left(?,0)」ダミーで変数をひとつ受け取ってやれば良いと言う事ですね。

↓希望通り動いたコード
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"

  SelectCommand="SELECT [ID], [名前], [年齢], [作成日時], [更新日時] FROM [名簿3] ORDER BY [ID] DESC"
  UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ? & left(?,0), [更新日時] = Now() WHERE [ID] = ?">

  <UpdateParameters>
    <asp:Parameter Name="名前" Type="String" />
    <asp:Parameter Name="年齢" Type="Int16" />
    <asp:Parameter Name="作成日時" Type="DateTime" />
    <asp:Parameter Name="更新日時" Type="DateTime" />
    <asp:Parameter Name="ID" Type="Int32" />
  </UpdateParameters>
</asp:AccessDataSource>

457:nobodyさん
09/11/29 23:21:27
>>456
このへんみてみたら?
URLリンク(codezine.jp)

458:nobodyさん
09/11/30 17:07:37
Web画面上の「機能」と言うボタンを押したらプリンタに帳票を出したいんです。
この際、一度プレブー画面を表示して、プレブー画面上の印刷ボタンでも構いません。

クライアントになんかしらんのエージェントでもインストールしない限り、画面のボタンを
押したらプリンタに出力、というのは実現できない気がするんですが、なにか方法がありま
ますでしょうか?

Javaスクリプト併用で画面イメージの印刷だったら画面ボタンをクリックして直接印刷できる
でしょうか?

459:nobodyさん
09/11/30 18:08:23
>>458
JavaScriptでブラウザの機能としての印刷ダイアログを表示させることはできるね。
URLリンク(bunjin.com)

でもブラウザで、四角四面の帳票を印刷させるのはほとんど不可能。
自分でPDFを作成するか、PDFなり、帳票を自動的に作成してくれる
コンポーネントを買うほうがいいと思う。

460:nobodyさん
09/11/30 18:33:40
ありがとうございます。
前に以前のプロジェウトでSVFなら使った事あります。ただ、今回の案件では金額的
な面からSVFは導入されなかたので、もし可能ならブラウザーから直接印刷したい
思いました。

461:nobodyさん
09/12/01 10:42:21
自分はもっぱらActiveReportだなぁ
最近はいろんなのがでてるだろうから、調査しなきゃいけないなあ

462:nobodyさん
09/12/03 17:06:57
iText.netならただでPDF作れるよ

463:nobodyさん
09/12/03 19:46:35
俺はiTextSharpの方を使っている

464:nobodyさん
09/12/03 20:05:05
そんなのあるのか

465:nobodyさん
09/12/03 20:32:59
それはそれで有り難いけど、DataSetを割り付けるだけで帳票できるような、
フリーなソフトがあればなぁ

466:nobodyさん
09/12/12 19:46:57
GridView内のとある明細のリンクをクリックするとモーダルダイアログが開いて、そこに
詳細情報を表示させる、みたいな処理を考えています。

モーダルダイアログ自体は↓この辺が参考になるかなぁと思っていますが

URLリンク(www.atmarkit.co.jp)

ダイアログを開く際に詳細情報をサーバに取りに行って、取得した内容をダイアログに出す
と言うところが分かりません。(Responseの中に詳細情報を埋め込みたくない)

詳細情報取得の部分だけ別途XML Webサービスで作っておいて非同期に実施?
どこかに参考になるようなサンプルがあったりしないでしょうか?

467:nobodyさん
09/12/12 20:29:38
最近ASP.NETのプロジェクトに掘り込まれて、ASP.NETを勉強している者ですが質問があります。
ポストバックっていう言葉なのですが、何回も言ってるとフィストファックって聞こえませんか?
先日ずっとフィストファックって聞こえて仕事になりませんでした。

468:nobodyさん
09/12/12 21:14:47
>>467
まず耐性を付けることが重要だ。
以後、6を見る度、sexと脳内補完して読むように。
5でチンコでもいいが萎えるようなら止めたまえ。

469:nobodyさん
09/12/12 22:11:10
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Text1" type="text" />
これの違いって何ですが?
上は標準のテキストボックス
下はHTMLのテキストボックス

470:nobodyさん
09/12/12 22:16:42
>>469
全然違いすぎて、何が聞きたいのかよく分からん。
もうちょっとどういう観点での違いが知りたいのかを明確に。

471:nobodyさん
09/12/12 22:26:03
エラーメッセージをテキストボックスに表示したいのですが、前任者のソースを見ると
<input id="Text1" type="text" />
のテキストボックスに出しているソースと
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
のテキストボックスに出しているソースがあります

何か明確な違い(例えば色を変えられない等)があるのかと思って質問しました。


472:nobodyさん
09/12/12 23:02:48
>>471
まずinputタグの方はそのままではコードビハインドから操作できない。
したがって、動的に変更する場合はJScript等クライアント側から行う必要がある。
まずここが一番大きな違い。
runat="server"をセットすることで、サーバー側から操作できるようになるが、
この場合クラスはHtmlInputTextとなる。
URLリンク(msdn.microsoft.com)
後者はTextBoxクラスとして扱われる。
URLリンク(msdn.microsoft.com)

最終的にhtmlに展開される点では同じなので、基本的に出来ることも同じ。
そういう意味で(色の設定云々といった)違いは発生しない。
だが、例えばTextBoxはTextModeプロパティを変更することでtextareaタグとして
レンダリングされることとなる。この場合、HtmlInputTextとの扱いに差がでる。
前者はあくまで対応するHTMLタグの参照、
後者はASP.NETが抽象化したコントロールという意味的な違いがある。

473:nobodyさん
09/12/12 23:36:37
>>472
分かりやすい説明有難うございます。
URLも参考させて頂きます><

474:nobodyさん
09/12/13 00:02:26
>>466
Responseの中に表示させたくないってのはどういうこと?
htmlのソースの中に表示させたくないってこと?

475:nobodyさん
09/12/13 00:26:25
>>474
AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい
ということです。そもそものページ(GridViewが貼ってあるページ)を返すときにはまだ
詳細情報を取得していない状態、としたいのです。(明細行数分の詳細情報とか
すごいサイズになってしまうので)

476:nobodyさん
09/12/13 00:46:07
>>475
単に明細ボタンクリックで、詳細を表示させたいということなら、
別ウィンドウを表示させるだけでいいんじゃない?

例えばJavaScriptで、targetが_blankのウィンドウに、
その明細を表示させるためのaspxに、明細のIDをgetなりセッションで渡してあげればいいと思うけど。


477:nobodyさん
09/12/13 21:01:29
別ウィンドウを使ったなんちゃってモーダルダイアログは色々不具合の元になるので
避けたいんです。

478:nobodyさん
09/12/13 21:22:18
>>477
ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
GridViewのイベントをフックして、その明細を表示するIDを取得して、
普通にDataSetに明細データを読み込んで表示させればいい。

479:nobodyさん
09/12/14 00:24:48

で、具体的には?

480:nobodyさん
09/12/14 00:52:21
>なんちゃってモーダルダイアログ
ModalDialogExtenderがなんちゃってだぞ。
showModalDialogも知らんのか。

481:nobodyさん
09/12/14 00:56:45
今時showModalDialogとかww

482:nobodyさん
09/12/14 00:59:21
>>479
具体的にも何も、そのまま普通にポストバック形式で記述して、
ASP.NET AJAXを導入するだけでしょ。
それ以上、どうやって具体的に説明すればいいか、
現実的な方法が思い浮かばない。

483:nobodyさん
09/12/14 02:45:20
まあ、一般論として 「普通に〜すればいいよ」 「普通に〜させればいい」 という回答を返す奴は
実は判ってないか、質問が理解出来ていないかのどっちか。


484:nobodyさん
09/12/14 05:56:26
>>483
それじゃソースをよこせって言ってるようなもんじゃん
ポストバック形式で記述します。
ASP.NET AJAXを導入します。
実現できるよね?

じゃ、こういえばいいのかな。
GridViewのそれぞれの行にButtonを設置するよね。
でそのButtonクリックでイベントを発生させて、その行のデータのIDを引数として渡す。
んでaspxでそのイベントをフックして、IDを取得できるので、
そのIDから、データベースよりデータを取得して、DataSetに格納する。
さらに任意のサーバコントロールを設置して、ダイアログ画面として表示させ、
そのダイアログの画面の、それぞれのサーバコントロールにDataSetに取得したデータを表示させる。

これをそれぞれ、目的に合致するようにソースに置き換えればいい。
何か難しいことがある?

485:nobodyさん
09/12/14 09:40:19
その記述で、お前が本質的に質問を理解していない事は分かった。

486:nobodyさん
09/12/14 10:43:34
>>485
ん?
返答の意味と違うのなら答えてあげてよ。
理解している人が。

487:nobodyさん
09/12/14 13:26:06
>>466
URLリンク(www.atmarkit.co.jp)
@ITより詳しい内容が本になって出てるので、それも参考に
ASP.NET AJAXプログラミング(マイコミ)

488:nobodyさん
09/12/14 13:37:08
>>484
君、典型的だね。

489:nobodyさん
09/12/14 13:41:14
>>487
そんなの使う必要ないよ。
AJAX使えばいいんだから。

490:nobodyさん
09/12/14 13:51:36
>>487
お前勘違いしてるだろ。
要は明細を表示させればいいわけで、XMLWebサービスを使わなければならない必要はない。
だから、ただASP.NET AJAXを導入すればいいだけ。

491:nobodyさん
09/12/14 14:03:05
だんだん、「AJAXを導入すればいいだけ」をひつこく繰り返してるのは、判ってる判って
ないと言うよりは単に荒らしてるだけのように見えてきた('A`

AJAXを導入すれば何もしなくてもいいと思ってんの?
つーか、「AJAXを導入」ってどういう意味で言ってるの?

492:nobodyさん
09/12/14 14:07:17
インストールすりゃ、ほとんど何もしなくていいんじゃない?

493:nobodyさん
09/12/14 14:08:30
あ、お前、ひょっとしてASP.NET AJAX知らないの?

494:nobodyさん
09/12/14 14:16:40
大抵の事はVisualStudioをインストールすれば出来るよ。

495:nobodyさん
09/12/14 14:20:04
2008使おうよ。

496:nobodyさん
09/12/14 14:21:09
全ての質問はWindowsにVisualStudio2008をインストールすれば解決するよ。
あ、お前もしかしてVisualStudio2008の使い方知らないの?

つまりこうですね。

497:nobodyさん
09/12/14 14:26:00
おまえら、もういい加減にいじめるのを止めて教えてやれw

>>491
AJAX Control ToolkitとASP.NET AJAXは別物なんだよ
ASP.NET AJAXってのは、ASP.NET 2.0 AJAX Extensions 1.0のことでVS2005のアドオン。
VS2008には標準装備で、プロジェクトでAJAX Webサイトを作成すれば、自動的に利用できる。
ASP.NET AJAXは、コーディングレスでデータ取得や描画をAJAX化してくれる。
だから、XMLWebサービスを使わなくても、ASP.NET AJAXを利用する手はずさせすれば、
ボタンクリック時にデータを取得して、ポストバックせずに画面の一部を変更する
なんてことができるんだよ。

ASP.NET AJAXならコーディングレスでAjaxを実装できる(前編)
URLリンク(itpro.nikkeibp.co.jp)
ASP.NET AJAX ファーストルック
−ASP.NETアプリケーションをプログラミングなしでAjax化−
URLリンク(www.atmarkit.co.jp)

つーわけで>>478>>482>>484は正解。
>>485>>488>>491はもっと勉強してから出直してくるように。

498:nobodyさん
09/12/14 15:31:26
はいはい自演乙。
AJAXに手を出せば出来る事は、そもそも質問者も最初に書いてる訳で。
具体的な方法が判らないつーてるのに二言目には「AJAX使え」と繰り返すばかり。
馬鹿なの?実は具体的な実装例は判ってないでしょ?

・・・と言う点を指摘されてる事もわからない訳ですね。

499:nobodyさん
09/12/14 15:37:08
具体的も何もPostBack仕様で作って、ASP.NET AJAXを適用するだけだろ?
PostBack仕様は>>484が書いてる通りじゃん。
つまり>>484の通りに作って、「ASP.NET AJAXを導入」しさえすれば、
>>497に書いてある通り、「コーディングレスでAjaxを実装できる」ということ。

他にどのように説明をしろと?

500:nobodyさん
09/12/14 15:41:00
もうほっとけって。

501:nobodyさん
09/12/14 15:53:37
ASP.NET AJAXを使ったこと無い人が、ただのAjax技術を想像して文句を言うの図?

>>491
>AJAXを導入すれば何もしなくてもいいと思ってんの?
うんASP.NET AJAXを導入すれば何もしなくてもいいの。

502:nobodyさん
09/12/14 16:12:59
今北新参
とりあえずAJAXっていうのが凄いって事はわかった
なんか似たような拡張もの?でMVCうんたらみたいのもあるけどあぁいうの使ってるの?
他にもこういうのある?

503:nobodyさん
09/12/14 16:29:21
まあ、具体的な実装がよく解らない、つー最初の質問に対しては >487 の回答がベスト。
別にXML Webサービスに分離する必要もないけど、XML Webサービスを使っても実現出来る
以上、あとは実装者のお好み次第。

サルみたいに「AJAX導入」を繰り返すだけの回答で質問者が理解出来てるならそれで十分。
以上終了。

504:nobodyさん
09/12/14 17:11:56
>>503
自演乙
やっと理解できた?ASP.NET AJAX導入についてw

505:nobodyさん
09/12/14 17:17:44
具体的実装もなにも、
ただポストバックする方法で作ればいいだけなんだから、
それ以上の答えなんてないだろw

>478 名前: nobodyさん [sage] 投稿日: 2009/12/13(日) 21:22:18 ID:???
>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
>GridViewのイベントをフックして、その明細を表示するIDを取得して、
>普通にDataSetに明細データを読み込んで表示させればいい。

ほんとこのまんまじゃん。
ASP.NET AJAXを利用して、
GridViewのイベントフックメソッドでid取得して、明細データを取得して表示
これ以上どんな説明すればいいんだ?ww

506:nobodyさん
09/12/14 18:19:02
>>505
お前の言うポストバックする方法ってのはいまいち理解できん
ASP.NETでポストバックじゃない方法があるのか?(MVCはしらん)

具体的にって言ってるんだから、サンプルコードでも出してみてくれ
ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?


507:nobodyさん
09/12/14 18:26:10
!!!!!!!!!!!!!!!!!!!!!!!!!!

>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?
>ASP.NET AJAXの何を利用するんだ?具体的な関数やコントロールは?


508:nobodyさん
09/12/14 18:26:44
具体的にって突っ込みされたら「具体的も何も(ry」って返ってくるだけw
あんまり苛めてあげないでw

509: ◆OUFPNullPo
09/12/14 18:38:01
OK把握した(`・ω・´)
代わりに俺が書いて見るぜ。

まずは、ToolKitインストールするからちょっとまってね(´・ω・`)

510:nobodyさん
09/12/14 18:53:18

URLリンク(mattberseth.com)

511:nobodyさん
09/12/14 19:03:02
>>510
ModalPopupとUpdatePanelつかってやるのが一番一般的だね。
同じようなサンプルだけど、この辺↓も。

URLリンク(msdn.microsoft.com)

まあ、いずれにせよ、AJAXを導入しただけじゃ駄目だし、別にGridViewのイベントを
フック(今読むとこれも意味不明だw)してる訳でもないし、AJAX導入だけで出来る
と主張してる奴はもっと違うやり方なんだろうなw


ちなみにGridViewを使う必要がないなら、DynamicContextという手もある。

512: ◆OUFPNullPo
09/12/14 19:17:58
あらら、先にサンプルかかれちゃった(´・ω・`)ショボーン

>>511
いや、基本それと同じでしようね。
GridViewのイベントハンドラメソッド内で、何らかのデータを取得して表示させるというのは
>GridViewのイベントをフックして、その明細を表示するIDを取得して、
>普通にDataSetに明細データを読み込んで表示させればいい。
が意味してるんでしょう。

んで、データを後からもってくるというのは、PostBackせずに部分PostBackで
ModalPopup内の表示を変更するということで、AJAXがコードを記述しなくてもやってくれる
=AJAXを設定するだけでOKということだね。


513:nobodyさん
09/12/14 19:24:47
controlのイベントメソッドへの記述を「イベントフック」等と普通言わないし、
2つのサンプルを見ても、AJAXの導入&プロパティの設定だけで期待する動作が
出来ているようには見えない。ModalPopupExtentionやUpdatePanelと言った単語
も一度として出てきていない。

AJAXの導入だけで普通出来る、と言ってる奴は自分では判ってるのかも知れんが、
少なくとも人に伝える、人に教える技術と言う点では全く完全に論外。

514:nobodyさん
09/12/14 19:30:10
>>512
>PostBackせずに部分PostBack
更新が部分的なだけでPostBackは常にページ全体が送られてきていたような。

515: ◆OUFPNullPo
09/12/14 19:36:01
>>514
UpdatePanel内でしかポストバックしないと思うけど、どうだったかなぁ

>まったく同じコントロールをUpdatePanelコントロールの中に入れるだけで、
>全体ポストバックではなく、AJAXの部分更新となり、ページの履歴も残らなくなります(図8)。
URLリンク(codezine.jp)

516:nobodyさん
09/12/14 19:46:37
>>513
>controlのイベントメソッドへの記述を「イベントフック」等と普通言わないし、

それは言い掛かりだろ。
>イベントハンドラ
>イベントが発生した際に実行すべきサブルーチンのこと。イベントフック、イベントリスナーなどの呼び方がある。

>AJAXの導入&プロパティの設定だけで期待する動作が出来ているようには見えない。
だれがAJAXを導入して、プロパティ設定だけすれば実現できるなんて書いてる?
「ポストバック時と同じように書いて、AJAXを利用すれば要求を実現できる」と記述してるだろうが。
いちいちすべて教える義務なんて俺らにはないんだからさwww
AJAXやってみなよ。やればわかるよ?みたいなスタンスでどこが悪いの?

>AJAXの導入だけで普通出来る、と言ってる奴は自分では判ってるのかも知れんが、
>少なくとも人に伝える、人に教える技術と言う点では全く完全に論外。
自分がわからない事を懇切丁寧に教えて貰えないからといって、文句言わない。
泣かない。逆切れしない。
お前がASP.NET AJAXについて何も知らなかっただけだろ?

ASP.NET AJAXを知った今ならどう思う?
普通にポストバックするように記述して、ASP.NET AJAX導入すれば実現できるよ?
って言われたらその通りだろ?ww

517:nobodyさん
09/12/14 20:01:17
まあ、そろそろお二人でメールかなにかでやり取りしてください。

518:nobodyさん
09/12/14 20:08:15
でも、知らないテクノロジを持ち出されて理解できないからって、
自らの不勉強を棚に上げて、
教えるほうが悪いって言われても困るよな。

519:nobodyさん
09/12/14 20:19:44
>>516
普通、あらかじめ用意されている標準のイベントに対しては、フックという表現はあまり使われないと思うがな

で、ここまででお前から具体的な内容はなにもないのな
まさかお前、ASP.NET AJAXってUpdatePanelしか無いと思ってないか?


520:nobodyさん
09/12/14 20:31:30
>>515
なるほど。
個人的にはその記事の「AJAXの部分更新」というところを
部分Postbackとは呼ばず「更新が部分的」という言葉で表した感じ。
一例としてMSDNでは「部分ページレンダリング(Partial-page rendering)」としている。
URLリンク(msdn.microsoft.com)

その記事の全体ポストバック、部分ポストバックは、
MSDNでは同期ポストバック、非同期ポストバックに当たる気がする。

で、言いたかったのはこれ。こっちの言い方も悪かったね。
>リクエスト・データには「通常のポストバックと同様のデータが含まれている」
URLリンク(www.atmarkit.co.jp)
↑これについての認識が同じなら、用語の選び方の差だね。

521:nobodyさん
09/12/14 20:41:22
そんな常識をいまさらお勉強して知識を披露されてもねぇ

522:nobodyさん
09/12/14 20:42:19
>>519
>普通、あらかじめ用意されている標準のイベントに対しては、フックという表現はあまり使われないと思うがな
いちいち言葉の概念とか詳しく記述しないと、とことんまで揚げ足とりかよ。
aspxは、それぞれが一つのクラスで表現されていて、コントロールが発生するイベントは、
そのページを表すパーシャルクラスに宣言された一つのメソッドを実行してるに過ぎないんだぜ?
つまり、イベントをフックする(ひっかける)とは、aspxにメソッドを用意して、
サーバコントロールでイベント発生時に、そのメソッドを実行するように設定することだ。

>で、ここまででお前から具体的な内容はなにもないのな
これまで書いたことはすべて無視か?
知らずに無知をひけらかして逆切れしたのはお前のほうだろ?w

>まさかお前、ASP.NET AJAXってUpdatePanelしか無いと思ってないか?
ほほー勉強してるようだね。感心感心。

523:nobodyさん
09/12/14 20:58:19
このスレってすぐ荒れるよな。

524:nobodyさん
09/12/14 21:05:02
ほとんど知らない奴の逆切れだけどな
ちゃんと教えてくれないとか、意味がわからないとか、そんな不満をこのスレで発散
日本の技術力が衰退するわけだよ

525:nobodyさん
09/12/14 21:15:00
約1名必死なのがいてワロス

> 2つのサンプルを見ても、AJAXの導入&プロパティの設定だけで期待する動作が
> 出来ているようには見えない。



> だれがAJAXを導入して、プロパティ設定だけすれば実現できるなんて書いてる?



>> つまり>>484の通りに作って、「ASP.NET AJAXを導入」しさえすれば、
>> >>497に書いてある通り、「コーディングレスでAjaxを実装できる」ということ。


どう読んでも 「コーディングレスで出来ます」 と言ってるようにしか読めません('A`

526:nobodyさん
09/12/14 21:16:41
>>525
これのどこがコーディングレスなのか詳しく。

>じゃ、こういえばいいのかな。
>GridViewのそれぞれの行にButtonを設置するよね。
>でそのButtonクリックでイベントを発生させて、その行のデータのIDを引数として渡す。
>んでaspxでそのイベントをフックして、IDを取得できるので、
>そのIDから、データベースよりデータを取得して、DataSetに格納する。
>さらに任意のサーバコントロールを設置して、ダイアログ画面として表示させ、
>そのダイアログの画面の、それぞれのサーバコントロールにDataSetに取得したデータを表示させる。


527:nobodyさん
09/12/14 21:19:40
>>525
コーディングレスでAjaxを実装できるとは書いてあるが、
コーディングレスでできるなんてどこにも書いてないよな?

どこにコーディングレスでできるって書いてあるんだ?

528: ◆OUFPNullPo
09/12/14 21:30:51
>>525
それは、部分更新をするAjax化がコーディングレスで実装できるという意味だと思うので、
間違っていないと思いますよ

>>466,475さんの聞きたいことは、
「クリックされたタイミングでデータを取得してページを部分書き換えしたい」
ということなんで「ページの部分書き換え=Ajaxを利用すれば実現できますよ」
で間違っていないと思いますよ。

文章からはデータを取得する方法までは聞かれていないと思うので、
その方法を書いていないからおかしいというのは、極論すぎると思います〜

529:nobodyさん
09/12/14 21:35:47
>>527
貴殿、そろそろ口を閉じた方がいいと思うんだ(´・ω・`)
客観的に見て参考になったのは

>>487
>>510
>>511

だけであり、貴殿の書き込みはたいして参考になっていないのが現実だから(´・ω・`)

530:nobodyさん
09/12/14 21:41:17
後出し感がすげえw

531:nobodyさん
09/12/14 21:46:59
>>529
後出しすぎるだろw

532:nobodyさん
09/12/14 21:51:07
>>487はレスとして依頼者の要望を満たしていないので不適切
>>510>>511は、AJAXの存在を指摘され、必死で勉強した結果のレス
従って>>529は自作自演

もういいんだよ。楽になろうぜ。


533:nobodyさん
09/12/14 21:56:13
>>528
>部分更新をするAjax化がコーディングレスで実装できるという意味だと思うので

ButtonClickの中でUpdateとShowを行ってるように見えるけど?

まあ今度は「AJAXがコーディングレスで実装出来ると言っているだけで、サーバサイドの実装まで
コーディングレスで出来るとは一言も言っていない」になるのかな。

>文章からはデータを取得する方法までは聞かれていないと思うので、
>その方法を書いていないからおかしいというのは、極論すぎると思います〜

誰もそんなところをおかしいとは言っていないwwwww


>>511
ダイナミックコンテキストだと別途WEBサービスが必要だけど、わざわざPOPUPのためだけに別途
WEBサービスを用意するのは、俺ならちょっと気が引けるかも

534:nobodyさん
09/12/14 21:56:18
ASP.NET AJAX使えばできるで通じるから、後だしだよなぁ

535:nobodyさん
09/12/14 21:58:27
必死杉。モチケツ >532

536:nobodyさん
09/12/14 22:04:03
そもそも、

>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい

の回答が

>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。

の時点で(ry

537: ◆OUFPNullPo
09/12/14 22:06:01
>>533
>ButtonClickの中でUpdateとShowを行ってるように見えるけど?
いやコントロールのUpdateとShowのメソッドの実行は、
Ajaxでなくても必要だから必要ですよね?

あなたも仰る通り、Ajaxは描画の部分更新をしてくれる機能なわけで、
それ意外のメソッドを省略してくれる機能ではないのだから、
それは普通の実装だと思いますよ〜

で、UpdateだのShowをしたときの、コントロールの状態の変化を
自分で定義しなくてもASP.NET AJAXが実装してくれてるということではないかと。

何か、基本的なところで勘違いしているような感じがするなぁ(´・ω・`)

538:nobodyさん
09/12/14 22:07:17 bCwbFrem
>>536
>そもそも、
>>AJAX使って、クリックされたタイミングでデータを取得してページを部分書き換えしたい
>の回答が
>>ならASP.NET AJAXを使って、普通に記述するだけで表示できるよ。
>の時点で(ry
正しいじゃないか


539:nobodyさん
09/12/14 22:09:09
>>ButtonClickの中でUpdateとShowを行ってるように見えるけど?
>いやコントロールのUpdateとShowのメソッドの実行は、
>Ajaxでなくても必要だから必要ですよね?

え?

540:nobodyさん
09/12/14 22:14:43
クライアント側の実装の手間を省かせてくれるのがVSのAJAXなわけで、それをわざわざ
「AJAX使えば(クライアント側の)実装はコーディングレスで出来ます」とか言われても、
ナニ当たり前の事言ってるのこの人・・・って感じなんだけどw



541: ◆OUFPNullPo
09/12/14 22:19:39
ああ、ごめんUpdateとかはUpdatePanelとかのメソッドのことなのね。
ごめん、普通のコントロールのメソッドだと勝手に勘違いしてた。

それは確かにAJAXに関係するコントロールのメソッドで、
そこに記述されてる方法でダイアログを表示させるのに実行しなければならないメソッドだろうけど、
そこまで懇切丁寧に説明されていないと、
説明されたことにはならないって言いたいってこと?
つまり、AJAXの存在を教えただけでは足りないと?

最初からレスみてると、他のみなさんと同様に、
あなたはAJAXを今まで知らなかったような感じがしてたんだけど、
そのところ実際のところはどうなのかな?


542:nobodyさん
09/12/14 22:20:34
>>540
嘘付けw
AJAXの存在知らなかったんだろ?w

543:nobodyさん
09/12/14 22:53:16
>>537,541
俺は>533ではないが、>533の話は説明がどうこうじゃなくて
コーディングレスじゃないだろうって話じゃないのか?

AJAXでOKな人もそうだが、自分の説明に文句つけるやつは
知らないから文句つけてるとでも思ってるんだろうかね


544:nobodyさん
09/12/14 23:01:47
放置推奨

自分では理解してるつもりでもそれを他人に伝える能力が無い人と。
理解は出来て無くても適切な情報へのポインタを示せる人と。

それだけのこと。ただ、それだけのこと。

545: ◆OUFPNullPo
09/12/14 23:57:41
>>543
うーん。そうなると「コーディングレス」の定義ってことですよね。
ということなら、コーディングレスは、コーディングが全く無いというわけでなく、
コーディングが少ないという意味だということになるんだと思います。

ASP.NET AJAXというフレームワークによって、
本来自分で実装しなければならないAJAX技術の入力が省力化されているわけなので、
十分にコーディングレスされてると思いますがどうでしょう。

さらにいうと、ASP.NET AJAXは、過去の経験上、
ほんとうにコーディングをまったくしなくてもいいと思うぐらい優秀だと思います。

[副](littleの比較級;最上級はleast)
1 (程度・度合が)いっそう少なく, もっと[さらに, より]下回って;((同一人物の2つの性質・状態を比較して))(…というよりは)むしろ…((than ...))
━[形](littleの比較級;最上級はleast)
1 (分量・程度が)…より少ない, 少量の;(大きさが)…より小さい(⇔more, greater). ⇒FEWER


546:nobodyさん
09/12/15 00:11:22
>>540
知らなかったお前のためにいってやってるんじゃないかw

547:nobodyさん
09/12/15 00:20:28
まだ頑張ってんの?

548:nobodyさん
09/12/15 00:23:54
AJAX知らないとか無知なクセに頑張りすぎだよな

549:nobodyさん
09/12/15 00:25:35
スレ伸びてると思ったらwww

550:nobodyさん
09/12/15 00:27:25
自分が無知なくせにwww

551:nobodyさん
09/12/15 00:36:00
AJAX云々はどうでもいいが

普通に〜すれば出来る。
普通にといったら普通にです。他に言いようが無い。

間違ってもこいつは客先には出せねえw

552:nobodyさん
09/12/15 00:40:24
>>545
一般にコーディングレスというと、コーディングがまったくない事だ

どこの辞書を転載してるのか知らんが、自分の都合のよい所を転載してるのは
本気で記載を見つけられなかったのか?
試しにYahoo!辞書で-lessを引いてみろ
「…のない」って出てるだろ


553:nobodyさん
09/12/15 00:52:43
AJAX君とOUFPNullPo君は放置でいいよ。

# 実は同一人物のような気もするけどw

554:nobodyさん
09/12/15 00:52:53
>>552
場所替えしたのでトリップなくてすいません。

ああ、そうかシュガーレスとかのレスかー
それじゃ、私の勘違いですね〜。失礼しました。

555:nobodyさん
09/12/15 00:56:44
>>553
いやいや違うよw
でも、素でわからないんだけど、AJAX実装すれば実現できるわけでしょ?
そのように返事したレスがなんで問題になってるの?

556:nobodyさん
09/12/15 01:05:59
うざい

557:nobodyさん
09/12/15 01:06:57
はぁ?
AJAX利用しろで正解だろ?
何がおかしいんだ?
AJAX知らなかったくせに後出しじゃんけんかよ。

558:nobodyさん
09/12/15 01:08:01
何回言わせる気だ。
メールでやれ。 お前二人以外には何の役にも立たん。迷惑だ。

559:nobodyさん
09/12/15 01:15:34
ここは質問スレだろ
AJAXの事知らずに書き込んで何が悪いんだよ

560:nobodyさん
09/12/15 01:16:40
AJAXで実現できるのは初めからわかってる
AJAX実装で実現できます、では間違ってはないが、何の回答にもなってない

問題は、じゃあ具体的にどうやるんだって言われて
ASP.NET AJAXを導入するだけだとか、普通に組むだけだとか言うから
それじゃ回答として不足でしょ、ってみんな言ってるわけ
(まあ不足なだけじゃなくて書いてる内容も微妙だと思うがな...)
でも結局具体例はなにもだせなく、挙句突っ込んだ人を無知扱いしたから叩かれてるんだよ


561:nobodyさん
09/12/15 01:18:58
いい加減にしろ。

562:nobodyさん
09/12/15 01:25:31
>>560
>AJAXで実現できるのは初めからわかってる
はい、ダウト。

>詳細情報取得の部分だけ別途XML Webサービスで作っておいて非同期に実施?
>どこかに参考になるようなサンプルがあったりしないでしょうか?
この発言のどこを見れば、AJAXで実現できると初めからわかってるんだ?
Webサービスを利用して実現しようとしていたのに。
後からAJAXの存在を知って、都合良く利用してるだけだろ?

563:nobodyさん
09/12/15 01:29:29
今北
どうせこのスレが伸びる時なんて
こんなことだろうと思ったけどwww

564:nobodyさん
09/12/15 01:34:43
>>560
何の回答になっていないというかASP.NET AJAXを知らないようだから、
そのレスがあっただけでも意味があるんじゃないの?

>それじゃ回答として不足でしょ、ってみんな言ってるわけ
2chで十分とかあるわけないでしょうよ

565:nobodyさん
09/12/15 01:41:02
>問題は、じゃあ具体的にどうやるんだって言われて
言われたっけ?
レス主からは言われてないよな。
回答として不足とかレス主でもないのに文句たれてる人は言ったみたいだけど

566:nobodyさん
09/12/15 01:50:21
>>562
>>475
相変わらず自分の都合のいいようにしか物事を解釈できないようで

ついでに言っといてやるが、WEBサービスってのはサーバ側の話で、元来AJAXとは無関係なんだがな
ただ、ASP.NET AJAX(Control Toolkit含めて)のなかには、WEBサービス前提の機能がいくつかあるんだよ
(つかWEBサービス云々はそういう流れででてきた話だと思ってたんだが、これは俺の深読みのしすぎか)
だから、WEBサービス利用とAJAX前提はなんら矛盾のない話だ

まあ、底が知れたんで俺はこれ以上この話題についてレスしない事にするわ


567:nobodyさん
09/12/15 08:31:08
>>566
え?ASP.NET AJAXで解決できることを初めからわかってたと?
ならなんで質問してくるんだ?ここで。

いいからASP.NET AJAXを使ってみなさいって。
使えばわかるから。
ああこういうことなんだなって。
UpdatePanelとかの文字が出てこなかったからって指摘したことが、
顔真っ赤になるぐらい恥ずかしいことだってw

568:nobodyさん
09/12/15 10:29:58
おいおい、伸びてると思ったらすごいな

しかし、最近のゆとりは本当にひどいな
わざわざ、コントロールの使い方まで教えて貰わないと、教えたことにならないなんて
UpdataPanelなんてAJAX必須コントロールなんだから、教える必要なんてないだろ
それに、記事のコーディングレスなんてキャッチフレーズだ
そんなの信じるほうが狂ってる

おれも、AJAX利用すれば解決、後は普通に実装しろって返答しただろうな
あぶねーw
親切心から返答してるのに文句いわれちゃたまらねぇわ

569:nobodyさん
09/12/15 10:38:41
その自作自演はさすがに引く。それ以前にウザイから空気読んで消えて。

570:nobodyさん
09/12/15 11:51:59
ここは2chですよね?

571:nobodyさん
09/12/15 12:27:46
おゆとり様

572:nobodyさん
09/12/15 14:57:55
>はい、ダウト。
>はい、ダウト。
>はい、ダウト。

おゆとり様かっけーw

573:nobodyさん
09/12/15 16:00:43
試しに
GridViewのボタンクリック→ModalPopupExtenderでPanel表示
Panel上のボタンクリック→Panel閉じる
ってやってみたんだけど、ダイアログとして表示したPanelのボタン押して、
閉じようとすると同期PostBackしてしまうな。

別途、ただのボタンを設置して
ボタンクリック→ModalPopupExtenderでPanel表示でやると、
ポストバックせずただPanelが消える。

なんでだろ?

574:nobodyさん
09/12/15 16:02:57
>>569-572
まだやってんのかよw
しかし質問者が逆切れで自演とか痛いな

575:nobodyさん
09/12/15 17:33:29
さすがAJAXの質問となると返事はゼロかw

576:nobodyさん
09/12/15 18:19:44
できた、できた。
UpdatePanelをダイアログとして表示するPanelで囲み、
もう一つのUpdatePanelでそれ以外の部分を囲んでやると、
Postせずにデータを取得し、さらにPostせずにダイアログを非表示にできるっぽい。
実際のコーディングはこれだけ。
UpdatePanel.Update()も不要だし、ModalPopupExtender1.Show()は
ToolKitのサーバコントロールのメソッドなので、
事実上にはASP.NET AJAXのコードは一切書かなくていい感じかな。

//GridViewの行に設置されたボタンをクリックしたときに実行されるメソッド
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
 //クリックしたGridViewのボタンの行を取得
 int rows = int.Parse((string)e.CommandArgument);

 //表示する詳細データの取得
 //--ここで実際には、取得した行からID等を取得し、詳細データを取得する--//

 //詳細データをコントロールに設定する
 this.Label1.Text = DateTime.Now.ToString();
 this.Label2.Text = rows.ToString();

 //ダイアログの表示
 this.ModalPopupExtender1.Show();
}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4952日前に更新/322 KB
担当:undef