質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

1回答

1274閲覧

asp.net ajaxtoolkit のModalPopupExtenderを動的なjavascriptで表示

bons

総合スコア9

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/10/31 05:00

編集2017/10/31 06:52

ページAにサーバーコントロールボタンのクリックイベントでrequest.redirectにパラメーターをセットしページ遷移をした時に、

パラメーターの値をチェックし
ページBのデータが表示されたGridviewの詳細ボタンを押して、modalpopupExtenerでポップアップウインドウを表示したい。

ページBの現在の動き
Gridviewの詳細ボタンを押した時の動き
Gridviewのrowdataboundイベントで、詳細ボタンにclientscriptを設定し、

javascriptを呼び出し、隠しhiddenボタンをクリックするように書いています。

隠しhidenボタンはmodalpopupExtenderのtargetControlになっているので、詳細ボタンを押したタイミングでmodalpopupExtenderのパネルが表示されています。

具体的なソース

VB

1'ページA 2Response.Redirect("pageB.aspx?pram=1");

VB

1'ページB aspx 2 <asp:GridView ID="Grid_view" runat="server" DataSourceID="main" 3 OnRowCreated="Grid_view_RowCreated" 4 OnRowDataBound="Grid_view_RowDataBound" 5 AutoGenerateColumns="False"> 6 <Columns> 7 <asp:TemplateField HeaderText="選択"> 8 <ItemStyle HorizontalAlign="Center" /> 9 <ItemTemplate> 10 <asp:Button runat="server" ID="btnDetail" Text="詳細" CssClass="" /> 11 </ItemTemplate> 12 </Columns> 13 </asp:GridView> 14 15 <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 16 TargetControlID="btnGo" PopupControlID="pnlBk" BackgroundCssClass="modalBackground" 17 DropShadow="true" PopupDragHandleControlID="pnl" CancelControlID="btnCancel"> 18 </ajaxToolkit:ModalPopupExtender> 19 20 <asp:Button ID="btnGo" runat="server" Text="" Width="0%" Height="0%" Style="display: none" />

VB

1'ページB vb.net 2Protected Sub Grid_view_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Grid_view.RowDataBound 3If e.Row.RowIndex >= 0 Then 4Dim btn as new button = CType(e.Row.FindControl("btnDetail"), Button) 5btn.OnClientClick = "push("+e.Row.RowIndex.toString()+")" 6end if 7End Sub

javascript

1function push(index){ 2//indexでポップアップの表示内容等変更。 3document.getElementById('btnGo').click(); 4}

何かアドバイスをください、お願いします

--追記---------------

Javascript

1var arg = new Object; 2var pair = location.search.substring(1).split('&'); 3for (var i = 0; pair[i]; i++) { 4 var kv = pair[i].split('='); 5 arg[kv[0]] = kv[1]; 6} 7var pram = Number(arg[kv[0]]); 8var target = document.getElementById('MainContent_Grid_view_btnDetail_' + pram.toString()); 9target.click();

こんな感じのjavascriptをページ遷移時に実行させたいのです。

urlにパラメーターを直接入力し、↑のスクリプトタグを書いて動かしたところ、
無効なポストバックまたはコールバック引数です。イベントの検証は、構成の <pages enableEventValidation="true"/>、またはページの <%@ Page EnableEventValidation="true" %> を使用して有効にされます。

と、出てしまい、
PageloadやPagePrerenderのイベントで、clientScriptで追加してもちゃんとした動きになってくれませんでした。

何かアドバイスのほうよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/31 05:40

ASP.NET のタグをつけてください。
退会済みユーザー

退会済みユーザー

2017/10/31 05:48 編集

で、問題は何でしょう? アドバイスをと言われても何をアドバイスすればいいのか、上の文からは分からなかったのですが。
guest

回答1

0

何がしたいのか、どこで躓いてるのか質問文からはっきり読み取れませんが・・・

想像をたくましくすると、以下のようなことがしたいように思えますがどうなんでしょう?

(1) ページ A からページ B にリダイレクト。その際、クエリ文字列でパラメータを渡す。

(2) ページ B には GridView が配置してあり、受け取ったパラメータの値を元にデータを取得して GridView に表示する。

(3) GridView の各データ行にはボタンが配置されており、それをクリックすると DetailsView にその行のレコードの詳細を表示し編集操作ができるようにしたい。

(4) DetailsView は ModalPopup に入れておき、(3) のボタンがクリックされるまでは非表示、ボタンクリックで表示されるようにしたい。

(5) DetailsView での作業が終わったら ModalPopup を閉じる。

・・・というようなことがしたいが、上記 (3) のところをどうすればいいか分からない。

上記の想像が合っているとすれば、以下の記事の例が参考になると思いますので見てください。

ModalPopup で編集・更新操作
http://surferonwww.info/BlogEngine/post/2010/10/14/Select-edit-and-update-using-2-pages.aspx

上記の想像が間違っているということでしたら、どこがどう間違っているか具体的に書いてください。

投稿2017/10/31 06:22

編集2017/10/31 06:25
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bons

2017/10/31 06:35

すいません少し伝え方が甘かったかもしれないです。 やりたいことは (1) ページAからページBにリダイレクト クエリ文字列でパラメータを渡す。 (2) ページBにはgridVIewが配置してあり、sqldatasourceでデータをセットしています。 (3) ページB遷移時にパラメーターがある場合、その行のボタンをクリックするjavascriptを実行しておきたい です。 ページ遷移した時に既にpopupが表示されている状態にしたいのです。
退会済みユーザー

退会済みユーザー

2017/10/31 06:43 編集

依然として何がしたくて、どこで躓いているか分かりません。ModalPopup には何を表示するのですか? そしてそれを行うのにあなたは何が分からないのですか? (少し伝え方が甘いというレベルではないのですけど・・・)
bons

2017/10/31 07:03 編集

modalpopupに表示する内容はtextboxにgridviewの内容をセットしたりしてます、 いまつまずいているのはページ遷移時にgridviewのボタンのクリックするjavascriptの実行です。
退会済みユーザー

退会済みユーザー

2017/10/31 07:04

話は通じているのでしょうか? PopupControlID="pnlBk" の pnlBk の中に入っているのは何ですかとお聞きしているのですが・・・ あと、JavaScript 云々の話はちょっと置いておいて、A から B に渡すパラメータは一体何で、それに応じて何をどのようにしたいのか、具体的に(あくまで具体的に)書いていただけませんか。
退会済みユーザー

退会済みユーザー

2017/10/31 07:10

ちなみに EnableEventValidation とは何かですが、以下の記事を見てください。 EnableEventValidation http://surferonwww.info/BlogEngine/post/2012/01/15/EnableEventValidation.aspx 記事に書いてあるように普通にやっていれば出るエラーではないです。何か想像を絶する(変なこと?)ことをしているような気がしますが。
bons

2017/10/31 08:55 編集

AからBに渡すパラメーターには日付が入っています 今日だと20171031と、 GridViewの詳細ボタンのクライアントスクリプトにはその行のデータの内容、 例:push(20171031,1,'あいうえお'); PopupControlID="pnlBk"の中にはtextboxとdropdownlist キャンセルボタンとOKボタン、 詳細ボタンを押した時にtextboxにクライアントスクリプトのあいうえお、 dropdownlistにselectする値 1~3、を初期値として設定しています oKボタンを押した時にtextboxに入力変更された内容がボタンクリックイベントによって処理され、 データベースへの更新をしています。 ------------------------------------- すいませんEnableEventValidationについての記事を確認し、 ソースの見直しをしたところ、引数を与えておらずunderfieldのままdropdownlistのselectedValueに入れようとしてました・・・。 これによってエラーが発生したのだろうなと思いました…。 パネルの中のドロップダウンリスト document('MainContent_popup_ddl').selectedvalue = underfield;← 考え方自体はこの方法でよろしいのでしょうか pageloadのnot ispostback時 QueryStringに値が入っている場合はサーバー側でjavascriptを発行して実行させる ちなみにdropdownlistはsqldatasourceでの内容をbindして、 AppendDataBoundItems="true"で <asp:ListItem Value="0">選択</asp:ListItem>を追加しています
退会済みユーザー

退会済みユーザー

2017/10/31 09:49

すみませんが何をしたいのか全く見当がつきません。説明いただいても、失礼ながら、日本語レベルで意味が分からないです。 私が回答に書いたように、やりたいことの全体のシナリオ・ストーリーを箇条書き / ステップバイステップで書いていただけませんか。 全体的なやりたいことやストーリーのごく一部を切り出して質問すると、もしその質問が全体的なやりたいことを実現するのには見当違いだった場合、回答も当然やりたいことを実現するには的外れになってしまいます。そうすると、見当違いと的外れのやり取りが繰り返されるだけになって、なかなか解決にたどり着けません。時間の無駄でもありますし。 全体のストーリーが分かると、局所的な質問の部分は実現が無理でも、「それはできないけど、やりたいことはこうすれば実現できる」というような代案も出てくるかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問