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

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

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

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

jQuery

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

2228閲覧

JavaScript・JQueryの記述について

joyboy

総合スコア35

JavaScript

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

jQuery

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/03/28 13:45

編集2019/03/28 13:46

プログラミング研修の一環でASP.NET(VB)による掲示板プログラム作成中の者です。

Repeaterでコメント内容を表示しているのですが、削除ボタンクリックにより論理削除
(DELETE FLGが成立すると、"このコメントは削除されました"と表示)されたデータ(行)に対して、
JavaScriptかJQueryを使って削除ボタンを非表示になるように実装したいのですが、
どのように記述したらいいか分かりません。
Repeater部分のソースは以下になります。

<asp:Repeater ID="bbsRepeater" runat="server"> <ItemTemplate> <div class="bbs__Information-box"> <p>[<%#HttpUtility.HtmlEncode(DataBinder.Eval(Container.DataItem, "DETAIL_NO").ToString())%>]</p> <p>ID:<%#HttpUtility.HtmlEncode(DataBinder.Eval(Container.DataItem, "USER_ID").ToString())%></p> <p>投稿日:<%#HttpUtility.HtmlEncode(DataBinder.Eval(Container.DataItem, "COMMENT_DATE").ToString())%></p> <asp:Button ID="btnDelete" runat="server" CommandName="delete" Text="削除" Font-Size="15px" Style="margin-top: 25px; height: 30px; width: 90px;" /> </div> <div class="bbs__comment"> <p><%#(DataBinder.Eval(Container.DataItem, "COMMENT_WORDS").ToString())%></p> </div> </ItemTemplate> <SeparatorTemplate> <hr /> </SeparatorTemplate> </asp:Repeater>

コメントが削除された文字列の赤文字は、このように記述しました。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> //削除コメント赤文字処理 $(function () { $('.bbs__comment:contains("このコメントは削除されました")').each(function () { var mojiretsu = $(this).html(); $(this).html(mojiretsu.replace(/このコメントは削除されました/g, '<span class="txt--color">このコメントは削除されました</span>')); }); }); </script>

JavaScript・JQuery共に無知な者で、基礎的な質問をして申し訳ありませんがよろしくお願いします。

イメージ説明

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/03/28 14:23

研修の課題とかでしたら、講師の方にお聞きになってはいかがですか? ここで聞く話ではないと思いますよ。
退会済みユーザー

退会済みユーザー

2019/03/28 21:28

jQuery, JavaScript で処置すると言うのが講師の指示ではなく、質問者さんが考えたことで、手段は問わないと言うことでしたたら、サーバー側で処置することをお勧めします。講師の指示なら、講師に聞いてください。
joyboy

2019/03/28 23:04

本日講師が終日いない上、他に質問できる人もいない状況で取り急ぎ質問させていただきました。 サーバ側で処置できる方法を調べてみようと思いますが、どのような方法がありますでしょうか? ヒントだけでもお願いします。
退会済みユーザー

退会済みユーザー

2019/03/28 23:19 編集

開発環境(特に、Visual Studio, ASP.NET のバージョン、DB は何かなど)を書いてください。 今時 Repeater を使う理由はなんでしょう? ページング機能もないのに。ListView を使いませんか。
joyboy

2019/03/28 23:33

開発環境はVisual Studio2017で、ASP.NETのバージョンは4.7.3282.0です。 DBは、SQLserverを使用しています。 ページング機能はPagedDataSourceというものを使って実装していますが、ListViewというのは初めてお聞きしました。
退会済みユーザー

退会済みユーザー

2019/03/29 00:12 編集

開発環境は質問欄を編集して追記してください。 コントロールの選択など全体のデザインが質問者さんの裁量で決めるのであれば、ListView + DataPager ⇔ SqlDaraSource (または ObjectDataSource + TableAdapter) ⇔ SQL Server という構成にすることをお勧めします。どうしますか? あと、全てサーバー側で処理するということも質問者さんの裁量で決められるのと理解して良いですか?
joyboy

2019/03/29 00:15

実装手段は私の裁量で決められるところではありますが、今回完成間近ということもあり、このままRepeaterで進めてみようと思います。 前回の質問に引き続き貴重なアドバイスありがとうございます! RepeaterというのはListViewの下位互換的位置づけになるのでしょうか?
退会済みユーザー

退会済みユーザー

2019/03/29 01:40

Repeater は過去の遺物と言ってもいいと思っています。 ListView が使えない ASP.NET 3.0 以下のアプリで保守等を行うのにやむを得ず Repeater を使うということであれば話は別ですが。
joyboy

2019/03/29 02:00

今後の事を考えたら実装終わり次第、空いた時間でListViewでの作り直しをしようと思います。 講師も使ったことが無いと言っていたので、こういった機能が他にもあるとは思っていましたが、そんなに古いものを使っているとは思いませんでした。
guest

回答2

0

ベストアンサー

上の質問のコメント欄でも書きましたが、jQuery, JavaScript で処置すると言うのが講師の指示ではなく、質問者さんが考えたことで、手段は問わないと言うことでしたら、サーバー側で処置することをお勧めします。

ASP.NET Web Forms アプリなのですから、html, javascript, css はほとんど何も知らなくても、サーバー側で C# または VB.NET のコードでほとんどのことができますし、ASP.NET Web Forms アプリではそうするのが普通です。

Repeater を使っているということですから、その ItemDataBound イベントのハンドラで処置することを考えてみてください。

以下の画像のアプリは http://surferonwww.info/BlogEngine/post/2010/08/25/Custom-pager.aspx という記事の Repeater を使ったアプリにちょっと手を加えて Discontinued にチェックが入っている製品名を赤で示すようにしたものです。

イメージ説明

どのように手を加えたかと言うと、まず、

<td colspan="7"><%# Eval("ProductName")%></td>

を以下のように Label コントロールを使って表示するように変更し、

<td colspan="7"> <asp:Label ID="Label1" runat="server" Text='<%# Eval("ProductName")%>'></asp:Label> </td>

以下のように ItemDataBound イベントのハンドラで処置しています。もし、<asp:Button ID="btnDelete" というボタンがあって、それを非表示にしたいということであれば、それを FindControl("btnDelete") で探してきて Visible プロパティを False にすれば良いはずです。

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView view = (DataRowView)e.Item.DataItem; bool discon = (bool)view["Discontinued"]; if (discon) { Label lbl = (Label)e.Item.FindControl("Label1"); lbl.ForeColor = System.Drawing.Color.Red; } } }

投稿2019/03/29 02:09

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

joyboy

2019/03/29 02:23

ありがとございます。 非常に分かりやすく記述されていて、初心者の私でも理解できました。 ソースはC#とお見受けしますが、これをVBで読み変えるにはどうしたらいいでしょうか? C#は全く触ったことが無いもので )泣
退会済みユーザー

退会済みユーザー

2019/03/29 02:26

変換サービスがあるので使ってみてください⇒ http://converter.telerik.com/ 完璧とはいかないまでも読んで理解できる程度にはなると思います。
joyboy

2019/03/29 02:31

こんな便利なサービスがあったとは目から鱗です。 サンプルソース探がしてもほとんどC#ばかりなので、困っていました。 これを基に実装してみます。 何から何までありがとうございます。
退会済みユーザー

退会済みユーザー

2019/03/29 02:32

頑張ってみてください。外出するので夜遅くまでここを見るチャンスがありませんのでご了承ください。
joyboy

2019/03/29 02:35

承知しました。ありがとうございます!
joyboy

2019/03/29 10:49

無事に実装できました。 詳しく解説いただきありがとうございます! またよろしくお願いします。
guest

0

javascript

1 2$('#btnDelete').hide();

的な話じゃないのですか?

調整

javascript

1$(function(){ 2 $('#btnDelete').on('click',function(){ 3 $(this).hide(); 4 }); 5});

投稿2019/03/29 00:19

編集2019/03/29 01:01
yambejp

総合スコア114572

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

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

joyboy

2019/03/29 00:58

お聞きしづらいのですが、どこに記述したら良いでしょうか?
yambejp

2019/03/29 01:02

調整しました
joyboy

2019/03/29 02:05

調整ありがとうございます。 出力しているデータテーブルに削除フラグも入っているので、Valueで削除フラグを拾ってTrueならボタンをhideメソッドで非表示とかですかね。
x_x

2019/03/29 02:09

idは変わるはずだし、runat="server" のボタンなのでポストバックします。 SurferOnWww さんの言うようにサーバー側で処理するのが筋かと
退会済みユーザー

退会済みユーザー

2019/03/29 02:24 編集

コメントを赤色に書き換えることはできているようですので、その要素から親・兄弟等の要素をたどって目的の Button (input type="submit" になるはず)を探して、display: none にするというような手段を取らないと目的は果たせないと思います。親・兄弟等の関係が変わると破綻するので決してお勧めではないですが・・・
joyboy

2019/03/29 02:29

サーバ側での処理が適切だという事がよくわかりました。 お二人ともありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問