質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

3522閲覧

slickgridで行ごとに編集可否を設定する

sacba

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/05 00:22

slickgridで、現在行を追加するボタンは実装できているのですが、
追加した行のカラムのみ編集可能にしたいです。
また、その中でも編集可能にしたい列と不可にしたい列があります。
どのようにして実装すればよいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

実コードを貼ることができないので、以下のソースを見ながら読んでください。
https://github.com/6pac/SlickGrid/blob/master/slick.editors.js#L24

前に業務で実装したときは、行ごとに追加した行か否かのフラグをもたせて、
セルのeditorを実装して(上記のTextEditorをコピペすれば基本OK)、this.initで行にセットされたフラグを参照し(args.item.hogehoge で参照可能です)

編集不許可の場合は、以下のようなコードで編集をキャンセルする

$(args.container).removeClass("editable"); // セルの色が変わるので戻す args.cancelChanges(); // 編集キャンセル

という実装をしました。

サンプルをgithubにアップしました。
https://github.com/yakumo-saki/slickgrid-celllock-example/

投稿2020/08/05 01:53

編集2020/08/05 10:28
YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sacba

2020/08/05 07:34 編集

ダメもとで質問したので、回答してくださって本当に助かります。ありがとうございます。 以下のように実装したのですが、 (追加行だけ編集できるようにしたいので、追加行はOfficialPlanが0になるようにしている) 既存行(OfficialPlanは1)の、editorを設定しているセルを選択すると、以降他のセルを選択できなくなってしまいます。(ifとelseどちらかに入ると、以降全てのセルでその処理になってしまう) どう実装すればよいでしょうか。申し訳ありませんがお願いいたします。 this.init = function () { var navOnLR = args.grid.getOptions().editorCellNavOnLRKeys; if(args.item.OfficialPlan == 0){              // フラグ判別 $input = $("<INPUT type=text class='editor-text' />") .appendTo(args.container) .on("keydown.nav", navOnLR ? handleKeydownLRNav : handleKeydownLRNoNav) .focus() .select(); } else { $(args.container).removeClass("editable"); // セルの色が変わるので戻す args.cancelChanges(); // 編集キャンセル } };
sacba

2020/08/06 00:18

無事できました! ご丁寧にサンプルまで作成していただいて、本当に助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問