■期待する動作
オブジェクトにグッズ名称を設定してポップアップで表示させたい。イメージ以下画像。
現状、No1を指定して表示していますが、No.2,3とユーザー側で変更した際の
制御を実装できないでいます。
No2,3をクリックし、そのオブジェクトに設定している値を取るところまではできていますが、そこからのオブジェクトとの紐付けで詰まってしまっています。
・オブジェクトとデータの構造について
・オブジェクトはSVG要素で作られており、data-title属性をattrにて付与します。
$('#オブジェクト').attr(data-title,グッズ名称)
・以下のようにgoods_meishoを取得、編集したい。
イメージとしてはグッズを管理している大きな棚をroomとしており、その中にある箱をbox、
箱の中には最大2件のgoodsmeishoが入る。2件入っている場合は/で結合。1つの場合はそのまま。無しの場合は空白で出力したい。
・データの格納のイメージと表示のイメージを以下に示します。
情報の整理がついていませんが、お力をお貸しいただけますと幸いです。
環境情報
フレームワーク:Asp.net mvc .NETFramework
データベース:Postgresql
jQueryバージョン情報:3.3.1
OS:windows7
.NET:4.6.2
Visual Studio:visual studio2017
c#
1・コントローラー 2///<summary> 3 ///グッズ名称取得 4 ///</summary> 5 private IEnumerable<GoodsModel.GoodsMeishoViewModel> GetGoodsName(NpgsqlConnection dataConnector) 6 { 7 List<GoodsModel.GoodsMeishoViewModel> GoodsMeishos = new List<GoodsModel.GoodsMeishoViewModel>(); 8 9 10 //テスト用の値 11 string Type_cd = "A"; 12 int box_tsuban = 1; 13 int goods_tsuban = 1; 14 15 16 string sql = @"select box_tsuban, goods_tsuban, goods_meisho" 17+ " from master.グッズ名称マスタ where Room_cd = :RoomCd and Type_cd = : TypeCd and box_tsuban = :Box_tsuban and goods_tsuban = :Goods_tsuban"; 18 19 NpgsqlCommand cmd = new NpgsqlCommand(sql, dataConnector); 20 cmd.Parameters.Add(new NpgsqlParameter("kikishitsuCd", NpgsqlDbType.Text)); 21 22 cmd.Parameters.Add(new NpgsqlParameter("TypeCd", NpgsqlDbType.Text)); 23 cmd.Parameters.Add(new NpgsqlParameter("Box_tsuban", NpgsqlDbType.Integer)); 24 cmd.Parameters.Add(new NpgsqlParameter("Goods_tsuban", NpgsqlDbType.Integer)); 25 cmd.Prepare(); 26 cmd.Parameters["RoomCd"].Value = Session["RoomCode"].ToString(); 27 cmd.Parameters["TypeCd"].Value = Type_cd; 28 cmd.Parameters["Box_tsuban"].Value = goods_tsuban; 29 cmd.Parameters["Goods_tsuban"].Value = goods_tsuban; 30 31 using (NpgsqlDataReader dr = cmd.ExecuteReader()) 32 { 33 while (dr.Read()) 34 { 35 GoodsMeishos.Add(new GoodsModel.GoodsMeishoViewModel() 36 { 37 boxtsuban = (int)dr["box_tsuban"], 38 goodstsuban = (int)dr["goods_tsuban"], 39 goodsmeisho = dr["goods_meisho"].ToString() 40 41 }); 42 } 43 return GoodsMeishos; 44 } 45
c#
1・Model 2public class GoodsModel : 〇〇ModelBase 3 { 4 ///<summary> 5 ///グッズ名称をセット 6 ///</summary> 7 public IEnumerable<GoodsMeishoViewModel> GoodsMeisho { get; set; } 8 9 public class GoodsMeishoViewModel 10 { 11 //box通番 12 public int boxtsuban { get; set; } 13 14 //グッズ通番 15 public int goodstsuban { get; set; } 16 17 //グッズ名称 18 public string goodsmeisho { get; set; } 19 } 20 21
c#
1・アクション 2 public ActionResult Index() 3 { 4 var model = this.CreateModel<GoodsModel>(); 5 // セッションよりNpgsqlConnectionを取得 6 NpgsqlConnection dataConnector = (NpgsqlConnection)Session["dataConnector"]; 7 8 // DBオープン 9 dataConnector.Open(); 10 11 12 model.GoodsMeisho = GetGoodsName( dataConnector); 13 14 dataConnector.Close(); 15 16 return View(model); 17 18 }
c#
1 var GoodsList = {}; 2 @for(int i = 0; i < Model.GoodsMeisho.Count(); i++ ) 3 { 4 @:GoodsList[@i] = '@Model.GoodsMeisho.ElementAt(i).goodsmeisho'; 5 } 6 7 for (var index in GoodsList) 8 { 9 var num = Number(index) + 1; 10 //グッズ名称オブジェクトのid(P01~...) 11 var id = "#P" + (('00' + (num)).slice(-2)) 12 if (index < 24) { 13 14 $(id).attr('data-title', GoodsList[index]); 15 } 16 $(id + "_PT2").attr('data-title', GoodsList[index]); 17 } 18 //グッズ名称オブジェクト全てに付与しているクラス 19 $('.PA').tipper();
c#
1 2 3 クリックされた値を取得する 4 //各部屋オブジェクトに付与しているclass 5 $('.Rooms').on('click', function (e) { 6 7 8 /* 押下したボタンから部屋番号を取得する */ 9 // ボタンのIDを取得 10 var selectRoom = e.currentTarget.id; 11 // ID情報から架番号を取得 12 13 14 // 取得した架番号をフォーム情報にセット 15 $('#RoomnumSelected').val(paNumber) 16 17 }
回答1件
あなたの回答
tips
プレビュー