いくつかのテーブルを含むasp.netWebサイトがあります。ただし、これらはasp:Tableではありません。つまり、次のように作成された単純なHTMLテーブルです。
<table><tr><td></td></tr></table>
ここで、コードビハインド(つまりC#)からこのテーブルに動的に行を追加できるかどうかを知りたいのですが、可能であれば、どうすればよいですか?
いくつかのテーブルを含むasp.netWebサイトがあります。ただし、これらはasp:Tableではありません。つまり、次のように作成された単純なHTMLテーブルです。
<table><tr><td></td></tr></table>
ここで、コードビハインド(つまりC#)からこのテーブルに動的に行を追加できるかどうかを知りたいのですが、可能であれば、どうすればよいですか?
Idを指定してrunat="server"属性を設定し、指定したIDを使用してコードビハインドから使用できます。
System.Web.UI.HtmlControls.HtmlTableRow r=new System.Web.UI.HtmlControls.HtmlTableRow();
System.Web.UI.HtmlControls.HtmlTableCell c = new System.Web.UI.HtmlControls.HtmlTableCell();
c.InnerText = "New Cell";
r.Cells.Add(c);
T.Rows.Add(r);
ここで、TはテーブルのIDです。
しばらく経ちましたが、ASP.NETWebフォームにはこの種のもののためのリピーター制御があります。
これは、この概念を紹介する素晴らしい記事です:ASP.NETのデータリピーターコントロール
これは、AJAX/JScriptでハッキングするよりも簡単だと思います
これとは別に、Daniel Casserlyは正しいです-これは、MVCで実行すると非常に簡単です(Razor-Syntaxを使用するとさらに簡単になります)。
<table>
@foreach (var item in Model)
{
<tr>
<td>@item.Name</td>
... whatever you need here ...
</tr>
}
</table>
これはJQueryで行うことができますが、そのためには、IDまたはクラスを指定するか、テーブル配列を検索してから行を挿入する必要があります。
はい、できます:このリンクをたどる:HTMLテーブルに新しい行を動的に追加する
HTML
コードビハインドからテーブル全体を作成する方が良いと思います。このために、リテラルを追加し、それをコードビハインドで使用して、コードビハインドからテーブル構造を追加できます。
たとえばHTML
、鳥の詳細の表を作成しましょう。説明を簡潔にするために、鳥の詳細で満たされたデータテーブル部分は含めていません。
if (dtBirdsDetail.Rows.Count > 0)
{
litBirdsTable.Text = "<center><table id='tbldata' cellspacing='0' cellpadding='1' border='1' style='border-collapse: collapse;'>" + System.Environment.NewLine;
litBirdsTable.Text += "<tr>";
//add datatable columns to html table as heading
for (int liColumnIndex = 0; liColumnIndex < dtBirdsDetail.Columns.Count;liColumnIndex++)
{
litBirdsTable.Text += "<th>" + dtBirdsDetail.Columns[liColumnIndex].ColumnName
+ "</th>" + System.Environment.NewLine;
}
litBirdsTable.Text += System.Environment.NewLine + "</tr>";
//add datatable rows to html table
for (int liRowIndex = 0; liRowIndex < dtBirdsDetail.Rows.Count; liRowIndex++)
{
litBirdsTable.Text += "<tr>";
litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["ID"] + "</td>" +
System.Environment.NewLine;
litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["BirdName"] + "
</td>" + System.Environment.NewLine;
litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["TypeOfBird"] + "
</td>" + System.Environment.NewLine;
litBirdsTable.Text += "<td>" + dtBirdsDetail.Rows[liRowIndex]["ScientificName"]
+ "</td>" + System.Environment.NewLine;
litBirdsTable.Text += "</tr>";
}
litBirdsTable.Text += "</table></center>";
}
詳細な説明については、次のリンクにアクセスしてください。
http://codevariation.blogspot.com/2018/03/html-table-design-with-dynamic-data.html