データベースから取得したデータをオブジェクトに付与しマウスオーバーにて表示させたい。
詳しく書くと
商品用画像が20個存在しているとして、オブジェクトのIDは「shohin01~shohin20」とする。
ControllerでDBから取得した値をListに詰めている。
・商品の入っている箱は4つタブで切り替わる。箱No1,No3は20商品入っている。箱No.2,No4は40個入っている。
箱のNo.が奇数の場合は20個のオブジェクト、偶数の場合は40個のオブジェクトが存在しているということ。
・商品1つにつき2つの名前を持つ商品もある。aaa/bbbのように/で区切り表示する。1つしか登録されていない場合は/はいらない。
Indexでforeachを回せばいいのかという考えはあるのですが、実装できない。お力をお貸し下さい。
データベースの構造
c#
1Controller 2 3 private IEnumerable<GoodsModel.GoodsMeishoViewModel> GetGoodsName(NpgsqlConnection dataConnector) 4 { 5 List<GoodsModel.GoodsMeishoViewModel> GoodsMeishos = new List<GoodsModel.GoodsMeishoViewModel>(); 6 7 // TODO: これではaaaしかとれていないためコメントアウト 8 //int room_num = 1; 9 //int box_num = 1; 10 //int goods_tsuban = 1; 11 12 13 string sql = @"select box_num, goods_tsuban, goods_meisho" 14 + " from GoodsMaster" 15 + " and room_num = :Room_num"; 16 //+ " and box_num = :Box_num" 17 //+ " and goods_tsuban = :Box_tsuban"; 18 19 NpgsqlCommand cmd = new NpgsqlCommand(sql, dataConnector); 20 cmd.Parameters.Add(new NpgsqlParameter("Room_num", NpgsqlDbType.Integer)); 21 //cmd.Parameters.Add(new NpgsqlParameter("Box_num", NpgsqlDbType.Integer)); 22 //cmd.Parameters.Add(new NpgsqlParameter("goods_tsuban", NpgsqlDbType.Integer)); 23 cmd.Prepare(); 24 cmd.Parameters["Room_num"].Value = Room_num; 25 //cmd.Parameters["Box_num"].Value = Box_num; 26 //cmd.Parameters["goods_tsuban"].Value = goods_tsuban; 27 28 NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); 29 DataSet myDS = new DataSet(); 30 da.Fill(myDS); 31 DataTable dt = myDS.Tables[0]; 32 foreach (DataRow row in dt.Rows) 33 { 34 GoodsMeishos.Add(new GoodsModel.GoodsMeishoViewModel() 35 { 36 boxnum = (int)row["box_num"], 37 goodstsuban = (int)row["goods_tsuban"], 38 goodsmeisho = row["goods_meisho"].ToString() 39 }); 40 } 41 return GoodsMeishos; 42 } 43 44 45 46 47 Model------------------------------------------------------------------------------------ 48 49 namespace .Web.Models 50{ 51 public class GoodsModel : ModelBase 52 { 53 54 55 56 ///<summary> 57 ///商品名称をセット 58 ///</summary> 59 public IEnumerable<GoodsMeishoViewModel> GoodsMeisho { get; set; } 60 61 public class GoodsMeishoViewModel 62 { 63 //Box番号 64 public int boxnum { get; set; } 65 66 //商品通番 67 public int goodstsuban { get; set; } 68 69 //商品名称 70 public string goodsmeisho { get; set; } 71 } 72 73 74 75 //Index------------------------------------------------------------------------------------ 76 77 $(function(){ 78 //一番最初の商品名だけ取れる 79 $('#P01').attr('data-title', '@Model.GoodsMeisho.First().goodsmeisho'); 80 81 //foreach文でP{0:D2}とKidoMeishoを回す 82 $.each(meishos in @Model.GoodsMeisho){ 83 alert(meishos); 84 }*@ 85//商品オブジェクトにはclass="P"を付与しておりすべてマウスオーバーに反応する 86 $('.P').tipper(); 87 } 88