ストアドプロシージャの出力をHTMLテーブルに表示したい。gridviewでの表示方法は知っていますが、HTMLテーブルでの表示についてはわかりません。誰かが私に提案するか、サンプルコードを提供して、そこから学ぶことができますか?私は検索して解決しようとしました。作成したHTMLテーブルからグラフを作成したい。
質問する
4715 次
2 に答える
1
まず、ビューにリストする情報を表示するためにViewModelを作成する必要があります。このようなもの:
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
/* other properties you need */
}
コントローラでは、データベースにアクセスしてリストを作成し、それをhtml出力に表示されているビューに戻すことができます。コントローラで直接Ado.Netを使用する代わりに、データアクセス層を作成することをお勧めします。
public ActionResult Index()
{
var model = new List<ProductViewModel>();
// create a connection
SqlConnection con = new SqlConnection("your_connection_string");
try
{
// open the conneciton
con.Open();
// prepare a command
SqlCommand command = new SqlCommand("You_Stored_Procedure_Name",con);
command.CommandType = CommandType.StoredProcedure;
// add parameters if you need
// command.Parameters.AddWithValue("ParameterName", value);
// execute a reader with the command
using (var reader = command.ExecuteReader())
{
// loop in the result and fill the list
while (reader.Read())
{
// add items in the list
model.Add(new ProductViewModel()
{
Id = (int)reader["Id"],
Name = reader["Name"].ToString(),
Price = (decimal)reader["Price"]
// other properties
});
}
}
}
catch
{
}
finally
{
con.Close();
}
return View(model);
}
ビューで、を使用して入力しIEnumrable<ProductViewModel>
、次のようなhtmlテーブルまたは必要なhtml構造にリストすることができます。
@model IEnumerable<ProductViewModel>
<table>
<tr>
<th>Name</th>
<th>Price</th>
</tr>
@foreach(var item in Model)
{
<tr>
<td>@item.Name</td>
<td>@item.Price.ToString("C2")</td>
</tr>
}
</table>
于 2013-01-29T13:26:30.003 に答える
0
私は...SPを呼び出して.CSページのデータを取得できると思います...
ここで、1つのことを行う必要があります。そのDatareaderを任意のリストに格納し、linqクエリを適用して、要件に従ってレコードを取得できるようにします。そのレコードを別の変数に格納します。
例を参照してください。
MainHTML = MainHTML + "<div class=" + "HideDivClass" + " id=" + TMid + "><table width=" + "180" + " cellspacing=" + "1" + " cellpadding=" + "2" + " align=" + "left" + "><tbody><tr><td style=" + "text-align:center;font-size:13px" + "align=" + "center" + " colspan=" + "2" + "><b>" + TransModeName + "</b></td></tr><tr><td class=" + "DetailsFontSize" + ">Last 7 days</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge7Days + "</td></tr><tr></tr><tr><td class=" + "DetailsFontSize" + ">Last 30 days</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge30Days + "</td></tr><tr><td class=" + "DetailsFontSize" + ">This Year</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeThisYear + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Total</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeTotal + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Avg/Shipment</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + AvgShip.ToString("#.####") + "</td></tr><tr><td class=" + "DetailsFontSize" + "align=" + "center" + " colspan=" + "2" + "></td></tr></tbody></table></div>";
ここでは、MainHTMLを文字列として取得し、文字列(HTMLレイアウト/デザイン形式)を作成して、この文字列をラベルにバインドします。
お気に入り。label.text = MainHTML.tostring(); あなたはあなたのものに従ってデザインを設定することができます...
于 2013-01-29T11:21:47.773 に答える