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

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

新規登録して質問してみよう
ただいま回答率
85.37%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

1259閲覧

モーダルウィンドウでの操作結果の扱い方について

lilac

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/08/30 06:13

例えば、進捗管理システムで、案件担当者を複数選択する機能があったとします。
ボタン押下で担当者選択の画面がモーダルウィンドウで表示され、
複数人選択(チェックボックスなど)して確定ボタンを押すと、
モーダルが解除されて呼び出し元画面に選択した担当者名が表示されるとします。

選択した担当者の情報を保持する方法(選択した情報を表示する方法)として、
どのような方法がよく用いられるのかご教示いただけないでしょうか。

例:
1.モーダルウィンドウで担当者を選択。確定ボタン押下。
2.チェックを付けた担当者の社員番号と氏名をそれぞれカンマ区切りで文字列にする。
3.呼び出し元画面の隠しinput要素に社員番号を、ラベル要素に氏名を入れる。

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

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

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

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

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

yambejp

2021/08/30 06:42

c#とjsだとだいぶ環境が違いますが、実際にはどういう状況を想定していますか?
lilac

2021/08/30 06:55

モーダルウィンドウでsubmitし、controllerを通るのか、それともjavascriptのみで実装するのか、どのような手段が一般的なのかが分からず、あいまいな質問および回答となり申し訳ございません。 ボタン押下→ウィンドウオープン→選択→ウィンドウクローズ→選択したものを表示 の機能を実装するにあたり、どうすればよいのかが知りたいです。
退会済みユーザー

退会済みユーザー

2021/08/30 06:55

何の話ですか? C#, JavaScript のタグが付いているということは ASP.NET? それにしても質問は意味不明。https://teratail.com/help/question-tips ← これを読んでもらって、そのガイドラインに沿って、ここに書いてあること以外は知り得ない第三者が分かるように書いてください。
Zuishin

2021/08/30 06:57

C# と JS だとだいぶ環境が違うというのはどういう意味かわかりますか? 両者とも言語の名前です。 実際にはどういう状況を想定しているかというのは何を尋ねられているかわかりますか? 環境を尋ねられています。
lilac

2021/08/30 07:03

申し訳ございません。 環境はASP.NET Coreになります。言語はC#です。
dodox86

2021/08/30 07:04

本当に、JavaScriptの話かC#の話か、更に言えばクライアントサイドかサーバーサイドの話かも分かりませんね。質問者さんのプロフィール欄のタグには「VB.NET」、「C#」がありますが。
退会済みユーザー

退会済みユーザー

2021/08/30 07:40

ここは追記修正依頼欄なので、環境は質問を編集して追記してください。
退会済みユーザー

退会済みユーザー

2021/08/30 08:02

> 環境はASP.NET Coreになります。言語はC#です。 ASP.NET のタグをつけて、質問欄を編集して開発環境(Visual Studio, Core のバージョンなど)を書いてください。 質問者さんのやりたいことを実現するために、自分ではどこまで実装できて、どこで躓いていて、何が分かれば解決するかを、自分が書いたコードをアップして(簡単なサンプルで可)、説明してください。
BeatStar

2021/08/30 08:49

まず、ご自分の質問を『第三者的視点で』、フラットな状態で読んでみてください。 回答者は質問者と同じ環境にある…わけではありません。 提示された情報からしか読み取れません。 C# なのかJavaScriptなのかはっきりしましょう。 もし上記で述べているようにC#なら、なぜJavaScriptタグがついているのでしょうか。 「同じプログラミング言語なんだからいいだろ」と思うのでしたら、なぜSwiftとかJavaとかObjective-Cとかアセンブラとか全部の言語タグを付けないのでしょうか。 その定義のせいで、誰も回答できません。
dodox86

2021/08/30 10:56

ASP.NET Coreでホスティングしているのなら、フロント部分を考えるとJavaScriptが完全に無関係とも言えないですね。質問者さんがどれくらいの意味でJavaScript、HTMLタグを付与されたかは分かりませんが。
退会済みユーザー

退会済みユーザー

2021/08/31 22:16

質問者さん、無言ですが、回答したのでそれに対するフィードバックを書きましょう。役に立った/立たなかったぐらいはすぐ返せるはず。役に立たなかったなら、どこがダメだったかを書くと、より質問者さんが期待する答えに近いものが出てくるかも。とにかく無言で放置は NG です。
guest

回答2

0

質問者さんは既に去ってしまったようですが、ASP.NET Core でのモーダルの使い方に関して案を書いておきます。

Visual Studio 2019 のテンプレートを使って ASP.NET Core アプリを作ると Bootstrap 4 が利用できるようになります。

Boorstrap には JavaScript modal プラグインが含まれているので、それを利用するのが良さそうです。

Modal
https://getbootstrap.jp/docs/4.2/components/modal/

上の記事にある Live demo のコードを View にコピペして、[Launch demo modal]ボタンをクリックするだけでモーダルダイアログが表示されます。

そして、そのコードの中の div 要素

<div class="modal-body"> ... </div>

の中(上の ... の部分)に質問者さんが言う「担当者選択の画面」を書けば、

1.モーダルウィンドウで担当者を選択。確定ボタン押下。

まではできると思います。

2.チェックを付けた担当者の社員番号と氏名をそれぞれカンマ区切りで文字列にする。

チェックボックスを使うなら、「担当者の社員番号と氏名をそれぞれカンマ区切り」は、その文字列を作って value 属性に設定しておけば良さそうです。

例えば以下のようなコードで、

@model IEnumerable<MvcCore5App4.Entities.Employee> @{ ViewData["Title"] = "Index"; } <h1>Bootstrap Modal</h1> <!-- Button trigger modal --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"> Launch demo modal </button> <!-- Modal --> <form asp-action="Index"> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> @foreach (var item in Model) { <input type="checkbox" name="@(item.EmployeeId + item.LastName)" value="@(item.EmployeeId + "," + item.LastName)" /> @Html.DisplayFor(modelItem => item.FirstName) <br /> } </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div> </div> </div> <input type="submit" value="Submit" /> </form>

以下のモーダルダイアログが表示されます。

イメージ説明

チェックボックスにチェックを入れてモーダルダイアログを閉じて、Submit ボタンをクリックすれば、チェックを入れた項目の value がサーバーに送信されます。

3.呼び出し元画面の隠しinput要素に社員番号を、ラベル要素に氏名を入れる。

そこは、その必要があるかどうか再考して、必要あれば JavaScript で実装するなど自分で考えてみてください。

投稿2021/08/31 04:21

編集2021/08/31 04:41
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

C#のフォームアプリケーションであれば、モーダルウィンドウのプロパティから選択した要素のリストがとってこれるんで、それをどーこーするだけですね

投稿2021/08/30 06:54

編集2021/08/30 06:54
y_waiwai

総合スコア88024

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

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

lilac

2021/08/30 07:09

フォームアプリではなく、Webアプリ(ASP.NET Core)になります。 前提を記載しておらず大変申し訳ございません。
y_waiwai

2021/08/30 07:17

ならそこらへんの前提条件を質問に追記しましょうよ
lilac

2021/08/30 07:32

おっしゃる通りです。 申し訳ございませんでした。
退会済みユーザー

退会済みユーザー

2021/08/30 07:57

回答する前に y_waiwai さんが確認すべき。点数乞食は止めましょう。
y_waiwai

2021/08/30 08:05

どうぞどうぞ、あなたはそうしてください。 べつにそれを止めはしませんし文句も言いません #で、オレはガッポガッポ?w
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問