質問編集履歴
12
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
②追加ボタンを押すと①で選択された選択値が変数に格納され、さらにリスト下に追加される
|
12
12
|
|
13
|
-
ようにしたいです。
|
13
|
+
ようにしたいですが、うまくいきません。
|
14
14
|
|
15
15
|
(削除ボタン左側が追加されたもの)
|
16
16
|
|
11
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,14 +34,6 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
ソース部分
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
```ここに言語を入力
|
42
|
-
|
43
|
-
------------------------------------------------------
|
44
|
-
|
45
37
|
public class SelectListItem
|
46
38
|
|
47
39
|
{
|
@@ -58,7 +50,7 @@
|
|
58
50
|
|
59
51
|
List<SelectListItem> emptyList = new List<SelectListItem>();
|
60
52
|
|
61
|
-
リストA
|
53
|
+
リストAは下記のように入っています。
|
62
54
|
|
63
55
|
{
|
64
56
|
|
@@ -72,7 +64,7 @@
|
|
72
64
|
|
73
65
|
}
|
74
66
|
|
75
|
-
リスト
|
67
|
+
リストは下記のように入っています。
|
76
68
|
|
77
69
|
{
|
78
70
|
|
@@ -81,6 +73,10 @@
|
|
81
73
|
{code:"004", name:"事業所D", longName:"004:事業所D"}
|
82
74
|
|
83
75
|
}
|
76
|
+
|
77
|
+
```ここに言語を入力
|
78
|
+
|
79
|
+
----------------------------------------------
|
84
80
|
|
85
81
|
function ViewModel() {
|
86
82
|
|
10
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -64,7 +64,11 @@
|
|
64
64
|
|
65
65
|
{code:"001", name:"事業所A", longName:"001:事業所A"},
|
66
66
|
|
67
|
-
{code:"002", name:"事業所B", longName:"002:事業所B"}
|
67
|
+
{code:"002", name:"事業所B", longName:"002:事業所B"},
|
68
|
+
|
69
|
+
{code:"003", name:"事業所C", longName:"003:事業所C"},
|
70
|
+
|
71
|
+
{code:"004", name:"事業所D", longName:"004:事業所D"}
|
68
72
|
|
69
73
|
}
|
70
74
|
|
9
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,4 @@
|
|
1
1
|
またおせわになります。
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
【困っていること】
|
6
|
-
|
7
|
-
DropDownListで選択されたデータを配列に格納したいですが、格納されないようです。
|
8
2
|
|
9
3
|
|
10
4
|
|
@@ -12,11 +6,13 @@
|
|
12
6
|
|
13
7
|
やりたいことはRazor Pages がレンダリングした結果の html の select 要素とか input 要素に対して JavaScript, jQuery, Knockout.js を使って
|
14
8
|
|
15
|
-
①テキストボックスにコードを入れると該当コードの選択値が自動に選択される
|
9
|
+
①テキストボックスにコードを入れるとリストで該当コードの選択値が自動に選択される
|
16
10
|
|
17
|
-
②追加ボタンを押すと選択された選択値が下に追加される
|
11
|
+
②追加ボタンを押すと①で選択された選択値が変数に格納され、さらにリスト下に追加される
|
18
12
|
|
19
13
|
ようにしたいです。
|
14
|
+
|
15
|
+
(削除ボタン左側が追加されたもの)
|
20
16
|
|
21
17
|
![イメージ説明](446d12727816ae97f5bda1744ce6c472.png)
|
22
18
|
|
@@ -46,112 +42,72 @@
|
|
46
42
|
|
47
43
|
------------------------------------------------------
|
48
44
|
|
49
|
-
|
45
|
+
public class SelectListItem
|
50
46
|
|
51
|
-
|
47
|
+
{
|
52
48
|
|
53
|
-
|
49
|
+
public SelectListItem();
|
54
50
|
|
55
|
-
|
51
|
+
public bool Selected { get; set; }
|
56
52
|
|
57
|
-
|
53
|
+
public string Text { get; set; }
|
58
54
|
|
59
|
-
|
55
|
+
public string Value { get; set; }
|
60
56
|
|
61
|
-
|
57
|
+
}
|
62
58
|
|
63
|
-
|
59
|
+
List<SelectListItem> emptyList = new List<SelectListItem>();
|
64
60
|
|
65
|
-
|
61
|
+
リストA:
|
66
62
|
|
67
|
-
|
63
|
+
{
|
68
64
|
|
69
|
-
|
65
|
+
{code:"001", name:"事業所A", longName:"001:事業所A"},
|
70
66
|
|
71
|
-
|
67
|
+
{code:"002", name:"事業所B", longName:"002:事業所B"}
|
72
68
|
|
73
|
-
|
69
|
+
}
|
74
70
|
|
75
|
-
|
71
|
+
リストB:
|
76
72
|
|
77
|
-
|
73
|
+
{
|
78
74
|
|
79
|
-
|
75
|
+
{code:"003", name:"事業所C", longName:"003:事業所C"},
|
80
76
|
|
81
|
-
|
77
|
+
{code:"004", name:"事業所D", longName:"004:事業所D"}
|
82
78
|
|
83
|
-
|
79
|
+
}
|
84
80
|
|
85
|
-
|
81
|
+
function ViewModel() {
|
86
82
|
|
87
|
-
|
83
|
+
self.masters = { company: リストA };
|
88
84
|
|
89
|
-
|
85
|
+
self.currentDatas = { company: ko.observable() };
|
90
86
|
|
91
|
-
|
87
|
+
self.attendDatas = { company: リストB }
|
92
88
|
|
93
|
-
|
89
|
+
self.addData = function () {
|
94
90
|
|
95
|
-
|
91
|
+
var addItem = self.currentDatas["company"]();
|
96
92
|
|
97
|
-
|
93
|
+
self.attendDatas[type].push(addItem);
|
98
94
|
|
99
|
-
|
95
|
+
}
|
100
96
|
|
101
|
-
|
97
|
+
}
|
102
98
|
|
103
|
-
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
```
|
104
|
+
|
105
|
+
@Html.DropDownList("CompanyCode", emptyList, new { data_bind = "options: masters.division, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
106
|
+
|
107
|
+
<input type="button" class="small-width" value="追加" data-bind="click: addCompany" />
|
104
108
|
|
105
109
|
</td>
|
106
110
|
|
107
111
|
|
108
112
|
|
109
|
-
|
110
|
-
|
111
|
-
Dictionary<string, List<DivisionContainer>> attendDatas = new Dictionary<string, List<DivisionContainer>>()
|
112
|
-
|
113
|
-
protected class DivisionContainer
|
114
|
-
|
115
|
-
{
|
116
|
-
|
117
|
-
public string code { get; set; }
|
118
|
-
|
119
|
-
public string name { get; set; }
|
120
|
-
|
121
|
-
public string longName { get; set; }
|
122
|
-
|
123
|
-
public Boolean vFlag { get; set; }
|
124
|
-
|
125
|
-
}
|
126
|
-
|
127
113
|
```
|
128
|
-
|
129
|
-
------------------------------------------------------
|
130
|
-
|
131
|
-
上記で、リストは正しく表示されます。
|
132
|
-
|
133
|
-
$root.masters.companyは下記の形で正しく値が入ります。
|
134
|
-
|
135
|
-
$root.masters.company = new DivisionContainer[]
|
136
|
-
|
137
|
-
追加ボタンを押したときのコンソールエラーは下記です。
|
138
|
-
|
139
|
-
![イメージ説明](b202313dc2bad4e0a2e3185e7b134f20.png)
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
下記部分のvalueの部分が間違っていると思っていますが、原因不明でいます。
|
144
|
-
|
145
|
-
①のテキストボックスにコードを入れると該当コードの選択値が自動に選択されるところまでできます。
|
146
|
-
|
147
|
-
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
下記のようにoptionsValue: 'code'を除くと、手動選択で②の追加ボタンを押すと選択された選択値が下に追加されるということはできました。
|
152
|
-
|
153
|
-
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
ソース抜粋したので、分かりづらいかも知りませんが、よろしくお願いします。
|
8
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,13 @@
|
|
10
10
|
|
11
11
|
【やりたいこと】
|
12
12
|
|
13
|
-
やりたいことはRazor Pages がレンダリングした結果の html の select 要素とか input 要素に対して JavaScript, jQuery, Knockout.js を使って
|
13
|
+
やりたいことはRazor Pages がレンダリングした結果の html の select 要素とか input 要素に対して JavaScript, jQuery, Knockout.js を使って
|
14
|
+
|
15
|
+
①テキストボックスにコードを入れると該当コードの選択値が自動に選択される
|
16
|
+
|
17
|
+
②追加ボタンを押すと選択された選択値が下に追加される
|
18
|
+
|
19
|
+
ようにしたいです。
|
14
20
|
|
15
21
|
![イメージ説明](446d12727816ae97f5bda1744ce6c472.png)
|
16
22
|
|
@@ -136,8 +142,16 @@
|
|
136
142
|
|
137
143
|
下記部分のvalueの部分が間違っていると思っていますが、原因不明でいます。
|
138
144
|
|
145
|
+
①のテキストボックスにコードを入れると該当コードの選択値が自動に選択されるところまでできます。
|
146
|
+
|
139
147
|
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
140
148
|
|
141
149
|
|
142
150
|
|
151
|
+
下記のようにoptionsValue: 'code'を除くと、手動選択で②の追加ボタンを押すと選択された選択値が下に追加されるということはできました。
|
152
|
+
|
153
|
+
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
154
|
+
|
155
|
+
|
156
|
+
|
143
157
|
ソース抜粋したので、分かりづらいかも知りませんが、よろしくお願いします。
|
7
内容修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -134,4 +134,10 @@
|
|
134
134
|
|
135
135
|
|
136
136
|
|
137
|
+
下記部分のvalueの部分が間違っていると思っていますが、原因不明でいます。
|
138
|
+
|
139
|
+
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
140
|
+
|
141
|
+
|
142
|
+
|
137
143
|
ソース抜粋したので、分かりづらいかも知りませんが、よろしくお願いします。
|
6
言語修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
htmlとスクリプトで選択されたデータを配列に格納したい
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
【やりたいこと】
|
12
12
|
|
13
|
-
やりたいことは下記選択リストから選択されたデータを変数に格納し、下に追加していきたいです。
|
13
|
+
やりたいことはRazor Pages がレンダリングした結果の html の select 要素とか input 要素に対して JavaScript, jQuery, Knockout.js を使って「下記選択リストから選択されたデータを変数に格納し、下に追加していきたい」です。
|
14
14
|
|
15
15
|
![イメージ説明](446d12727816ae97f5bda1744ce6c472.png)
|
16
16
|
|
5
開発環境
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,9 +20,17 @@
|
|
20
20
|
|
21
21
|
Visual Studio 2015
|
22
22
|
|
23
|
-
|
23
|
+
EntityFramework version="5.0.0"
|
24
24
|
|
25
|
-
|
25
|
+
jQuery version="1.7.1.1"
|
26
|
+
|
27
|
+
knockoutjs version="2.1.0"
|
28
|
+
|
29
|
+
AspNet.Mvc version="4.0.20710.0"
|
30
|
+
|
31
|
+
AspNet.Razor version="2.0.20710.0"
|
32
|
+
|
33
|
+
|
26
34
|
|
27
35
|
ソース部分
|
28
36
|
|
4
ソース変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -116,6 +116,10 @@
|
|
116
116
|
|
117
117
|
上記で、リストは正しく表示されます。
|
118
118
|
|
119
|
+
$root.masters.companyは下記の形で正しく値が入ります。
|
120
|
+
|
121
|
+
$root.masters.company = new DivisionContainer[]
|
122
|
+
|
119
123
|
追加ボタンを押したときのコンソールエラーは下記です。
|
120
124
|
|
121
125
|
![イメージ説明](b202313dc2bad4e0a2e3185e7b134f20.png)
|
3
開発言語とソース
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,6 +20,10 @@
|
|
20
20
|
|
21
21
|
Visual Studio 2015
|
22
22
|
|
23
|
+
【開発言語】
|
24
|
+
|
25
|
+
C#
|
26
|
+
|
23
27
|
ソース部分
|
24
28
|
|
25
29
|
|
@@ -28,49 +32,51 @@
|
|
28
32
|
|
29
33
|
------------------------------------------------------
|
30
34
|
|
31
|
-
|
35
|
+
function EmployeeModel(data) {
|
32
36
|
|
33
|
-
|
37
|
+
self.masters = { division: null, area: null, branch: null, company: null };
|
34
38
|
|
35
|
-
|
39
|
+
self.currentDatas = {
|
36
40
|
|
37
|
-
|
41
|
+
division: ko.observable(),
|
38
42
|
|
39
|
-
|
43
|
+
area: ko.observable(),
|
40
44
|
|
41
|
-
|
45
|
+
branch: ko.observable(),
|
42
46
|
|
43
|
-
|
47
|
+
company: ko.observable()
|
44
48
|
|
45
|
-
|
49
|
+
};
|
46
50
|
|
47
|
-
|
51
|
+
self.attendDatas = {
|
48
52
|
|
49
|
-
|
53
|
+
division: ko.observableArray(data.attendDatas.division),
|
50
54
|
|
51
|
-
|
55
|
+
area: ko.observableArray(data.attendDatas.area),
|
52
56
|
|
53
|
-
|
57
|
+
branch: ko.observableArray(data.attendDatas.branch),
|
54
58
|
|
55
|
-
|
59
|
+
company: ko.observableArray(data.attendDatas.company)
|
56
60
|
|
57
|
-
|
61
|
+
};
|
58
62
|
|
59
|
-
|
63
|
+
self.addCompany = function () {
|
60
64
|
|
61
|
-
|
65
|
+
self.addData("company", 1);
|
62
66
|
|
63
|
-
|
67
|
+
}
|
64
68
|
|
65
|
-
|
69
|
+
self.addData = function (type, level) {
|
66
70
|
|
67
|
-
|
71
|
+
var addItem = self.currentDatas[type]();
|
68
72
|
|
69
|
-
|
73
|
+
if (ko.utils.arrayFirst(self.attendDatas[type](), function (item) { return item.code == addItem.code; }) == null) {
|
70
74
|
|
71
|
-
|
75
|
+
self.attendDatas[type].push(addItem);
|
72
76
|
|
73
|
-
|
77
|
+
}
|
78
|
+
|
79
|
+
}
|
74
80
|
|
75
81
|
------------------------------------------------------
|
76
82
|
|
@@ -83,6 +89,26 @@
|
|
83
89
|
<input type="button" class="small-width" value="追加" data-bind="click: addCompany" />
|
84
90
|
|
85
91
|
</td>
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
Dictionary<string, List<DivisionContainer>> attendDatas = new Dictionary<string, List<DivisionContainer>>()
|
98
|
+
|
99
|
+
protected class DivisionContainer
|
100
|
+
|
101
|
+
{
|
102
|
+
|
103
|
+
public string code { get; set; }
|
104
|
+
|
105
|
+
public string name { get; set; }
|
106
|
+
|
107
|
+
public string longName { get; set; }
|
108
|
+
|
109
|
+
public Boolean vFlag { get; set; }
|
110
|
+
|
111
|
+
}
|
86
112
|
|
87
113
|
```
|
88
114
|
|
2
ソース変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,8 +78,6 @@
|
|
78
78
|
|
79
79
|
@Html.TextBox("SearchCompanyCode", Model.CompanyCode, new { maxlength = 8, size = 6, data_bind = "event:{keyup: searchCodeTest}" })
|
80
80
|
|
81
|
-
@*@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, value: currentDatas.company, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-'" })*@
|
82
|
-
|
83
81
|
@Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: 'code', optionsText: 'longName', optionsCaption: '-選択してください-', value: currentDatas.company" })
|
84
82
|
|
85
83
|
<input type="button" class="small-width" value="追加" data-bind="click: addCompany" />
|
1
ソース変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,16 +1,30 @@
|
|
1
1
|
またおせわになります。
|
2
2
|
|
3
3
|
|
4
|
+
|
5
|
+
【困っていること】
|
4
6
|
|
5
7
|
DropDownListで選択されたデータを配列に格納したいですが、格納されないようです。
|
6
8
|
|
7
9
|
|
8
10
|
|
11
|
+
【やりたいこと】
|
12
|
+
|
9
13
|
やりたいことは下記選択リストから選択されたデータを変数に格納し、下に追加していきたいです。
|
10
14
|
|
11
15
|
![イメージ説明](446d12727816ae97f5bda1744ce6c472.png)
|
12
16
|
|
17
|
+
|
18
|
+
|
19
|
+
【開発環境】
|
20
|
+
|
21
|
+
Visual Studio 2015
|
22
|
+
|
13
23
|
ソース部分
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
```ここに言語を入力
|
14
28
|
|
15
29
|
------------------------------------------------------
|
16
30
|
|
@@ -60,9 +74,7 @@
|
|
60
74
|
|
61
75
|
------------------------------------------------------
|
62
76
|
|
63
|
-
|
64
|
-
|
65
|
-
|
77
|
+
<td data-bind="if:editFlag">
|
66
78
|
|
67
79
|
@Html.TextBox("SearchCompanyCode", Model.CompanyCode, new { maxlength = 8, size = 6, data_bind = "event:{keyup: searchCodeTest}" })
|
68
80
|
|
@@ -72,7 +84,9 @@
|
|
72
84
|
|
73
85
|
<input type="button" class="small-width" value="追加" data-bind="click: addCompany" />
|
74
86
|
|
75
|
-
|
87
|
+
</td>
|
88
|
+
|
89
|
+
```
|
76
90
|
|
77
91
|
------------------------------------------------------
|
78
92
|
|