C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: ボタンの表示非表示


(過去ログ 105 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■62688 / inTopicNo.1)  ボタンの表示非表示
  
□投稿者/ kayu (9回)-(2011/10/27(Thu) 16:09:46)

分類:[ASP.NET (VB)] 


いつもお世話になっています

GridViewのボタンセルをVBプログラムで表示非表示したいのですが可能でしょうか?

引用返信 編集キー/
■62689 / inTopicNo.2)  Re[1]: ボタンの表示非表示
□投稿者/ やじゅ (1968回)-(2011/10/27(Thu) 18:49:17)
やじゅ さんの Web サイト
No62688 (kayu さん) に返信
> GridViewのボタンセルをVBプログラムで表示非表示したいのですが可能でしょうか?

どのような想定でその処理を行うつもりでいますか?
それによって回答方法が違ってくるかも。

GridView 行ごとでボタンの表示・非表示
http://blogs.yahoo.co.jp/yss2216/10168282.html
引用返信 編集キー/
■62690 / inTopicNo.3)  Re[2]: ボタンの表示非表示
□投稿者/ kayu (10回)-(2011/10/27(Thu) 19:16:54)
No62689 (やじゅ さん) に返信
> ■No62688 (kayu さん) に返信
>>GridViewのボタンセルをVBプログラムで表示非表示したいのですが可能でしょうか?
>
> どのような想定でその処理を行うつもりでいますか?
> それによって回答方法が違ってくるかも。
>
> GridView 行ごとでボタンの表示・非表示
> http://blogs.yahoo.co.jp/yss2216/10168282.html

言葉少なくてすみません
各行によって、選択、編集、削除ボタンを表示・非表示したいのです。

自分なりにネットで調べてCommandFieldクラスを使おうと考えています。
一応ソースも載せておきます。

aspx側
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True"
ShowSelectButton="True" />
</Columns>
</asp:GridView>

vb側
Public Overridable Property ShowEditButton As Boolean
         :
         :
         :

Dim instance As CommandField
Dim value As Boolean

value = instance.ShowEditButton

instance.ShowEditButton = value

現在、ここで行き詰っています。
よろしくお願いします。






引用返信 編集キー/
■62707 / inTopicNo.4)  Re[3]: ボタンの表示非表示
□投稿者/ やじゅ (1969回)-(2011/10/28(Fri) 18:46:02)
やじゅ さんの Web サイト
No62690 (kayu さん) に返信

CommandFieldフィールドをTemplateFieldフィールドに置き換える必要があるようです。
http://www.atmarkit.co.jp/fdotnet/dotnettips/832aspgridvwcmdbtn3/aspgridvwcmdbtn3.html

その後にRowCommandイベントなどで、
FindControlを使用して、TemplateField内のコントロール名を指定してコントロールの状態が取得
VisibleプロパティでTrue/Falseを設定する。
http://devlabo.blogspot.com/2009/09/gridviewrowcommand.html

私もASP.NETはさわってないので、作成するイメージしか書けないんだけど。

引用返信 編集キー/
■62745 / inTopicNo.5)  Re[4]: ボタンの表示非表示
□投稿者/ kayu (11回)-(2011/10/31(Mon) 16:57:22)
No62707 (やじゅ さん) に返信
> ■No62690 (kayu さん) に返信
>
> CommandFieldフィールドをTemplateFieldフィールドに置き換える必要があるようです。
> http://www.atmarkit.co.jp/fdotnet/dotnettips/832aspgridvwcmdbtn3/aspgridvwcmdbtn3.html
>
> その後にRowCommandイベントなどで、
> FindControlを使用して、TemplateField内のコントロール名を指定してコントロールの状態が取得
> VisibleプロパティでTrue/Falseを設定する。
> http://devlabo.blogspot.com/2009/09/gridviewrowcommand.html

TemplateFieldフィールドに置き換えてRowCommandイベントで取得し、取得しようとしたら
どの行を選択しても、e.CommandArgumentが空になります。
何か問題があるのでしょうか?
それとも、TemplateFieldフィールドにうまく置き換えられなかったのでしょうか?


よろしくお願いします。
引用返信 編集キー/
■62750 / inTopicNo.6)  Re[5]: ボタンの表示非表示
□投稿者/ kayu (12回)-(2011/10/31(Mon) 17:43:05)
No62707 (やじゅ さん) に返信

やじゅうさん有難うございました。
おかげで解決しました。

参考になるか解りませんが、ソースを貼り付けておきます

aspx側
<asp:GridView ID="GridView1" runat="server">
  <Columns>
   <asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Select" runat="server" CausesValidation="False" CommandName="Select" Text="選択"></asp:Button>
<asp:Button ID="Delete" runat="server" CausesValidation="False"CommandName="Delete" Text="削除"></asp:Button>
</ItemTemplate>
</asp:TemplateField>
  </Columns>
</asp:GridView>

vb側
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
'行番号を取得できるようにする
If e.Row.RowType = DataControlRowType.DataRow Then
CType(e.Row.FindControl("Select"), Button).CommandArgument = e.Row.RowIndex.ToString
CType(e.Row.FindControl("Delete"), Button).CommandArgument = e.Row.RowIndex.ToString
End If
End Sub

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then

Dim Select As Button = DirectCast(e.Row.FindControl("Select"), Button)
Dim Delete As Button = DirectCast(e.Row.FindControl("Delete"), Button)
        :
      表示・非表示条件記入
        :
      '表示の場合
      Select.Visible = True
'非表示の場合
      Select.Visible = False
        :
        :
End Sub








解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -