実現したいこと
下図のようなテーブルを作っております。将来的にはデータグリッドとするつもりです。
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
あなたの回答
tips
プレビュー