0

ストアドプロシージャの出力をHTMLテーブルに表示したい。gridviewでの表示方法は知っていますが、HTMLテーブルでの表示についてはわかりません。誰かが私に提案するか、サンプルコードを提供して、そこから学ぶことができますか?私は検索して解決しようとしました。作成したHTMLテーブルからグラフを作成したい。

4

2 に答える 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 に答える