質問するログイン新規登録

Q&A

0回答

672閲覧

・tdを@onclickでクリックするとプルダウンに変化し、プルダウンの内容を選択するとtdに文字列が残って欲しい

macaca

総合スコア1

blazor

Blazorは、マイクロソフトが開発している.NETベースのWebアプリフレームワークです。C#でフロントエンドもバックエンドも一貫して書くことが可能。クライアントサイド(WebAssembly)とサーバーサイド形式のホスティングモデルがあります。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

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

HTML

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

0グッド

0クリップ

投稿2023/03/03 02:09

編集NaN/aN/aN aN:aN

0

0

実現したいこと

下図のようなテーブルを作っております。将来的にはデータグリッドとするつもりです。
thのクリックでそれぞれの列に合わせたソートが可能です(実現済み)
イメージ説明
今回実現したいこととしては、
・ランクとある列のtdをA~Eの文字列で編集可能としたく思います。
・tdを@onclickでクリックするとプルダウンに変化し、プルダウンの内容を選択するとtdに文字列のみが残って欲しい。
また、行ごとに編集が行えるようにしたい。

前提

Windows 11 の Visual Studio 2022 で Blazor WASMアプリをターゲットフレームワーク .NET 7.0 で作っています。

tdタグをクリックする機能を実装中に以下のエラーメッセージが発生し、ビルドが出来ません。

発生している問題・エラーメッセージ

以下のようなエラーが出ております。 エラーメッセージ CS0501 'DataGridHand02.changeEdit()' は abstract、extern、または partial に指定されていないため、本体を宣言する必要があります ワーニング CS8974 メソッド グループ 'changeEdit' を非デリゲート型 'object' に変換中です。このメソッドを呼び出すつもりでしたか?

該当のソースコード

html本文中blazor

1<td class="editableTD" @onclick="changeEdit"> 2 @((MarkupString)messageText) 3 @changeEdit{ 4 @messageText 5 <EditForm Model="Lank" onchange="onselect"> 6 <InputSelect id="Lank" 7 @bind-Value="Lank" 8 class="form-control"> 9 @foreach (var it in Lanks) 10 { 11 <options>@it</options> 12 } 13 </InputSelect> 14 </EditForm> 15 } 16 </td>

blazor

1@code { 2 [Parameter] 3 public string Lank { get; set; } 4 public string messageText = "ー"; 5 public void changeEdit(); 6 private string[] Lanks = new string[] 7 { 8 "A", 9 "B", 10 "C", 11 "D", 12 "E", 13 }; 14}

補足、一応動いてはいるコード

html

1<td class="editableTD" @onclick="changeEdit">@((MarkupString)messageText)</td>

blazor

1@code { 2 public string messageText = "ー"; 3 private void changeEdit() 4 { 5 6 messageText = 7 "<select name='select106' onchange='change(this)'><option>選択</option><option value='1番目'>A</option><option value='2番目'>B</option><option value='3番目'>C</option><option value='4番目'>D</option><option value='5番目'>E</option></select>"; 8 } 9}

一応やりたいことの途中までは動いている様子です。
イメージ説明

試したこと

ネット上のコードからお借りしてきたものなので、そもそもよく分かっていないのが問題だと思います。
その後もネット上のコードから書き換えを試しているのですが、ビルドが通りません。
また、Visual Studioのサジェスチョン機能でコードを改変してみても同様でした。
一応動いているコードはあるのですが、プログラムと呼ぶにもお恥ずかしい内容で、メンテナンス性も最悪だと思います。
また、これでは該当コードを張り付けたtdが全て同時に編集状態になるのも問題です。

補足情報(FW/ツールのバージョンなど)

開発環境:Visual Studio2022 .NET7.0
動作確認環境:Windows11, edge

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問