C#
1(ファイル名「kubun.aspx.cs」) 2public HttpContext baseContext; 3 4private List<Dictionary<string, string>> __区分; 5 public List<Dictionary<string, string>> _区分 6 { 7 get 8 { 9 if (__区分 == null) 10 { 11 var parameters = new Dictionary<string, string>(); 12 parameters.Add("種類", _LoginContext._種類); 13 var data = new List<Dictionary<string, string>>(); 14 using (var connection = new SqlConnection(_LoginContext._接続)) 15 { 16 connection.Open(); 17 using (var command = new SqlCommand()) 18 { 19 var method = MethodBase.GetCurrentMethod(); 20 var text = string.Format("/* [{0}.{1}] */", method.DeclaringType, method.Name) + @" 21 DECLARE @種類 INT; SET @種類 = <D:種類>; 22 select distinct 23 コード, 24 コード名 25 from 26 区分マスタ 27 order by 28 コード 29 "; 30 command.Connection = connection; 31 command.CommandText = hos.Utility.ReplaceSql(text, parameters); 32 command.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["SqlCommandTimeout"]); 33 hos.Utility.SqlLog(Context, command); 34 using (var reader = command.ExecuteReader()) 35 { 36 while (reader.Read()) 37 { 38 var dictionary = new Dictionary<string, string>(); 39 for (var i = 0; i < reader.FieldCount; i++) 40 { 41 var name = reader.GetName(i); 42 var value = reader.GetValue(i).ToString(); 43 dictionary.Add(name, value); 44 } 45 data.Add(dictionary); 46 } 47 } 48 } 49 } 50 __区分 = data; 51 } 52 return __区分; 53 } 54 }
HTML
1(ファイル名「kubun.aspx」) 2 3<tbody> 4 <% 5 foreach (var _区 in _区分) 6 { 7 %> 8 <tr data-row-id="<%= _区["コード"] %>" class="modal-tr"> 9 <td><%= _区["コード"] %></td> 10 <td><%= _区["コード名"] %></td> 11 <td data-column-id="commands"></td> 12 </tr> 13 <% 14 } 15 %> 16</tbody>
JavaScript
1(ファイル名「kubun.js」) 2var grid = 3 $("#grid-command-buttons").bootgrid({ 4 rowCount: [-1, 10, 25, 50], 5 formatters: { 6 "commands": function (column, row) { 7 return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span>編集</span></button> " + 8 "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span>削除</span></button>"; 9 } 10 } 11 }).on("loaded.rs.jquery.bootgrid", function () { 12 (中略) 13 }).end().find(".command-delete").on("click", function (e) { 14 if (!confirm("コード:" + $(this).data("row-id") + " のデータを削除しますか?")) { 15 return false; 16 } else { 17 $.post('kubun.aspx.cs?_区分', { id: $(this).data("row-id"), action: 'delete' }) 18 .done(function (data) { 19 $(this).parents('tr').remove(); 20 $("#grid-command-buttons").bootgrid('remove', [$(this).data("row-id")]); 21 }) 22 .fail(function () { //アラートでNGだす 23 alert("削除できませんでした。もう一度お試しください。"); 24 }) 25 $("#grid-command-buttons").bootgrid('reload'); 26 } 27 }); 28 });
使用しているjQuery プラグインは「bootgrid」です。
http://www.jquery-bootgrid.com/
C#のListを、HTML内でテーブル化しました。
そのテーブルの行を、削除したいです。
JavaScriptにある、削除ボタンを押した際に、
まずListにその行のデータがあるかを確認し、
あれば削除、なければエラーを出す。
という処理を行いたいです。(JavaScriptの.end().findの部分です)
今、そのListにその行のデータがあるかどうかの確認が上手くいっていません。
($.post部分)
おそらく、JavaScriptの「$.post」の送り先が違っているのかと思うのですが、
どうでしょうか?
今、「'kubun.aspx.cs?_区分'」となっている部分です。
それともまた別の場所に問題があるのでしょうか?
削除したいデータはC#のListの該当するデータです。
現状の「'kubun.aspx.cs?_区分'」のまま、実行をすると、
「削除できませんでした。もう一度お試しください。」と出てきてしまいます。
使用しているjQueryは「jquery-1.10.2.min.js」です。