這是通過 Blazor 服務器應用程式實作的。
我有一個如下所示的文本檔案:
TEXT00
Some title
TEXT10
8
DATA
110,4,2
110,0,6
110,0,32
110,4,16
110,0,16
110,4,3
110,0,2
...
...
我想完成兩件事:
首先,我希望將這樣的檔案加載到一個可編輯的表格中,其中 DATA 行下的數字應該放在每個自己的可編輯單元格中。
插圖:
| 速度 | 長度 | 秒 |
|---|---|---|
| 110 | 4 | 2 |
| 110 | 0 | 6 |
| 110 | 0 | 32 |
其次,我希望能夠保存單元格中的內容,以便它替換目錄中的原始文本檔案。
按下一個按鈕,檔案就會被加載到一個單元格中,該單元格可以使用contenteditable="true". 我嘗試過將數字加載到他們自己的單元格中但失敗了。當涉及到資料單元格時,保存檔案按鈕不起作用。
這是打開按鈕、表格和保存按鈕:
<button @onclick="OpenFile">Open file</button>
<div class="table-wrapper-scroll-y my-custom-scrollbar">
<table class="table table-bordered table-striped mb-0">
<thead class="bg-light">
<tr>
<th>Title: </th>
</tr>
<tr>
<th>Tempo</th>
<th>Length</th>
<th>Secs</th>
</tr>
</thead>
<tbody>
<tr>
<td><div contenteditable="true">@_contents</div> </td>
<td><div contenteditable="true"></div></td>
<td><div contenteditable="true"></div></td>
</tr>
<tr>
<td><div contenteditable="true"></div> </td>
<td><div contenteditable="true"></div></td>
<td><div contenteditable="true"></div></td>
</tr>
</tbody>
</table>
</div>
<button @onclick="SaveFile">Save file</button>
這是加載檔案的函式和應該保存新檔案的函式。
@code {
string _contents { get; set; } = string.Empty;
void OpenFile()
{
_contents = File.ReadAllText(@"path");
}
void SaveFile()
{
File.WriteAllText(@"path", _contents);
}
}
有沒有人知道如何在單元格中插入數字,以便在保存時,txt 檔案被編輯替換?
uj5u.com熱心網友回復:
要實作這一點,您需要使用系結元素。例如:
<input @bind="YourProperty" type="text" />
這需要對每一列和每一行進行。最好的解決方案如下所示:
List<WhateverItem> items = new(); // This list should hold all your objects from your text file
public class WhateverItem
{
public string Tempo { get; set; }
public string Length { get; set; }
public string Secs { get; set; }
}
然后在 .razor
@foreach (var item in items)
{
<tr>
<td>
<input @bind="item.Tempo" type="text" />
</td>
<td>
<input @bind="item.Length" type="text" />
</td>
<td>
<input @bind="item.Secs" type="text" />
</td>
</tr>
}
保存時,您需要使用 StringBuilder 從物件中重新創建內容。
如果要驗證欄位,請考慮使用EditForm. 請記住,您還可以系結到除字串之外的其他型別。然后您需要更改輸入型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526725.html
標籤:C#西装外套
上一篇:檢索和更新字串的第一個數字
