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

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

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

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

Q&A

解決済

1回答

9838閲覧

GridViewのボタン表示非表示

doremifa

総合スコア33

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

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

0グッド

0クリップ

投稿2016/10/13 09:48

###前提・実現したいこと
お世話になります。
ASPボタンのonclickイベント内でsqlコネクションをつくり、
Gridviewに対してデータバインドしている。
この時のsql結果に応じて特定行のボタンの表示非表示をコントロールしたい

###aspx

aspx

1<asp:Button ID="a" runat="server" Text="Go" OnClick="btn_go_Click" /> 2<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="20" AutoGenerateColumns="False" BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="6" EnableModelValidation="True" Width="950px" > 3<Columns> 4<!--このボタンの表示非表示を操作したい--> 5<asp:ButtonField ButtonType="Button" Text="ボタン" CommandName="gridbtn"/> 6<asp:BoundField DataField="name" HeaderText="name"></asp:BoundField> 7</Columns> 8</asp:GridView> 9ここにご自身が実行したソースコードを書いてください

###C#

C#

1 protected void btn_go_(object sender, EventArgs e) 2 { 3 //このFLGがtrueだったらボタンを表示 falseだったら非表示としたい 4 string sql = "SELECT name,FLG FROM B " 5 6 SqlConnection sqlc = new SqlConnection(); 7 sqlc.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CCC"].ConnectionString; 8 9 SqlCommand sqlcmd = new SqlCommand(); 10 sqlcmd.Connection = sqlc; 11 12 sqlcmd.CommandText = sql; 13 14 SqlDataAdapter adapt = new SqlDataAdapter(); 15 adapt.SelectCommand = sqlcmd; 16 17 DataSet datas = new DataSet(); 18 adapt.Fill(datas); 19 20 GridView_JOB.DataSource = datas; 21 //ここでバインドしている 22 GridView_JOB.DataBind(); 23 24 25 26 }

###試したこと
rowcreatedで行ごとに判定してvisible=falseとしようとしましができませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
ドットネットフレームワーク4.5.2
C#

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

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

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

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

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

guest

回答1

0

ベストアンサー

ButtonField を使うのは止めて、TemplateField の中に TextBox を配置し(Visual Studio のデザイナで簡単に ButtonField を TemplateField に変更できます)、その TextBox の Visible プロパティにデータバインド式 '<%# Eval("FLG") %>' を設定してはいかがですか? 以下のような感じです。

<asp:Button ID="Button1" runat="server" ・・・ CommandName="gridbtn" Text="ボタン" Visible='<%# Eval("FLG") %>'/>

投稿2016/10/13 11:19

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

doremifa

2016/10/13 13:03

こんな解決方法があるとは目から鱗です。 実はFLG=true行の背景色を変更して目立たせたいとも考えているのですが それも可能でしょうか?
退会済みユーザー

退会済みユーザー

2016/10/13 14:01

表題の内容と違うことを質問する際は、新たに別スレッドを立ててそこで質問していただければと思います。 このサイトは、情報を集積して後から検索などでここにたどり着いた人に情報を提供するということも目的としているようですので、スレッドは表題に合った質問内容、それに関連する Q&A に絞った方がよさそうですので。 ところで、GridView ではなくて ListView を利用してはいかがですか? GridView はなかなか融通が利かないです。GridView に備わった機能を利用している内は簡単ですが、その範囲を超えると、とたんに敷居が高くなります。特に、細かくスタイルを適用するのが面倒です。 ちなみに、ListView なら以下の記事のようにして可能です。 ListViewでの一覧表示で、取得したデータに応じて背景色を変えたい https://social.msdn.microsoft.com/Forums/ja-JP/30201d98-4332-4674-8020-c787b93111af/listview?forum=aspnetja
doremifa

2016/10/13 23:51

承知いたしました。 本質問に関しては解決してますのでまったく新しい質問にします。 リストビューの情報ありがとうございます。 詳細な設定はこちらのほうがよいというのは私も聞き及んでますが 知識のない人に対してコードを説明するのにGridViewのほうが簡単そうにみえるので グリッドビューでできることはそっちでやりたいなと考えたりしてます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問