- - PR -
GriddViewでのダイレクトキャストについて
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-09 02:29
はじめまして。
みゆきです。 よろしくお願いします CommandFieldからtemplateFieldに変換したボタンが存在します。 ボタンをクリックした時に(ItemTemplate)もうひとつのtemplat eFieldにあるDropDownList(EditItemTemplate)を選択させない様 にしたいのですが可能でしょうか? わたしが考えた内容としては、 ボタンをクリックした時のイベントハンドラでDirectCastを使用 しDropDownListコントロールを参照させ、DropDownListのSelect edプロパティでFalseにするというようは方法で行ってみたのです がうまくいきません。 この様なやり方ではこのような事は行えないでしょうか? 下に多くなり申し訳ないのですがコードを書きますのでどうか アドバイスの程をよろしくおねがいします。 ★test.aspx.vb(抜粋) /////////////////////////////////////////////////////////////////////////// Protected Sub test_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim UpdateBot As Button = DirectCast(sender, Button) Dim RowUpdateBot As GridViewRow = DirectCast(UpdateBot.NamingContainer, GridViewRow) Dim StateDrop As DropDownList = DirectCast(UpdateBot.FindControl("STATE_DROP"), DropDownList) StateDrop.Items(3).Selected = False End Sub /////////////////////////////////////////////////////////////////////////// ★test.aspx(抜粋) /////////////////////////////////////////////////////////////////////////// ●ボタンの部分 <asp:TemplateField HeaderText="編集" InsertVisible="False"> <EditItemTemplate> <asp:Button ID="test_Update" runat="server" CausesValidation="True" CommandName="Update"OnClick="test_Update_Click" Text="更新" /> <asp:Button ID="test_Stop" runat="server" CausesValidation="False" CommandName="Cancel" Text="中止" /> </EditItemTemplate> <ItemTemplate> <asp:Button ID="test_edit" runat="server" CausesValidation="False" CommandName="Edit" Text="編集" OnClick="test_Click" /> </ItemTemplate> </asp:TemplateField> ●DropDownListの部分 <asp:TemplateField HeaderText="テスト"> <ItemTemplate> - </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="STATE_DROP" runat="server" AutoPostBack="True"> <asp:ListItem></asp:ListItem> <asp:ListItem>テスト</asp:ListItem> <asp:ListItem>テスト1</asp:ListItem> <asp:ListItem>テスト2</asp:ListItem> <asp:ListItem>テスト3</asp:ListItem> </asp:DropDownList> </EditItemTemplate> //////////////////////////////////////////////////////////////////////////// [ メッセージ編集済み 編集者: みゆき 編集日時 2006-09-11 23:03 ] | ||||||||||||
|
投稿日時: 2006-09-09 08:14
DropDownListからアイテムを選択できないようにしたいのですよね。 DropDownListのEnabledプロパティを「False」に設定したらどうでしょうか。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||||||||||
|
投稿日時: 2006-09-09 16:32
こんにちわ。
みゆきです。 引用: -------------------------------------------------------------------------------- DropDownListのEnabledプロパティを「False」に設定したらどうでしょうか。 -------------------------------------------------------------------------------- さっっそく ★test.aspx.vbの StateDrop.Items(3).Selected = Falseから StateDrop.Enabled = False にしてみました。 しかし、うまくいかず 「System.NullReferenceException: オブジェクト 参照がオブジェクト インスタンスに設定されていません。」 の様なエラーがでてしまいます。 やはり行う事はできないのでしょうか? | ||||||||||||
|
投稿日時: 2006-09-10 01:40
NAL-6295です。
そもそも
で期待しているDropDownListを取得できていません。 UpdateBotというのが、ボタンコントロールなので、その中にDropDownListがあるわけありませんよね。
としてみてはいかがでしょうか?
という例外は、それが発生した箇所で参照しようとしている変数にインスタンスが設定されていない時に発生します。 だから、ステップ実行をして発生箇所で止めて、何が設定されていないのかを調べてみるのが早道だったりします。 | ||||||||||||
|
投稿日時: 2006-09-10 07:57
編集モードのときDropDownListからアイテムを選択できないようにするには、
Enabledプロパティに「False」を設定するだけでよいのでは。
_________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||||||||||
|
投稿日時: 2006-09-10 16:36
こんにちは。
NAL-6295様、Access様ご返答本当にありがとうございます。 引用: -------------------------------------------------------------------------------- Dim StateDrop As DropDownList = DirectCast(Me.FindControl("STATE_DROP"), DropDownList) -------------------------------------------------------------------------------- アドバイスを頂いた通り上記の様に行ってみたのですが同じエラーを出力して しまいました。 引用: -------------------------------------------------------------------------------- 編集モードのときDropDownListからアイテムを選択できないようにするには、 Enabledプロパティに「False」を設定するだけでよいのでは。 -------------------------------------------------------------------------------- できたら、すべてを選択不能にするのではく、ボタンをクリックした時にDropDownListコントロールの3番目の項目を選択できない様にしたいと思っています。 説明に不足がありました所深くお詫びたします。 やはりこのような事を行うことはできないのでしょうか? | ||||||||||||
|
投稿日時: 2006-09-11 05:56
3番目のアイテムをDropDownListから削除した状態で表示したらどうでしょうか。 選択不可のアイテムをDropDownListに表示するのが問題のような気がします。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||||||||||
|
投稿日時: 2006-09-11 22:59
こんばんは。
みゆきです。 Access様ご返答、毎回本当にありがとうございます。 引用: -------------------------------------------------------------------------------- 3番目のアイテムをDropDownListから削除した状態で表示したらどうでしょうか。 選択不可のアイテムをDropDownListに表示するのが問題のような気がします。 -------------------------------------------------------------------------------- 削除してみましたが同じ様に 「System.NullReferenceException: オブジェクト 参照がオブジェクト インスタンスに設定されていません。」 が出力されてしまいました。 そこで、今あるボタンを、TemplateFieldから、EditItemTemplateに変更し 行ってみた所、DropDownListを参照する事ができました。 DropDownListはEditItemTemplate上に存在します。 ただ、わたしとしてはEditItemTemplateではなくてTemplateField上にある ボタンをクリックした時にEditItemTemplate上にあるDropDownListを参照し たいのです。 TemplateField上からEditItemTemplateにあるコントロールの参照はできないの でしょうか? |