- PR -

データグリッドコントロール上のテキストボックスのプロパティの設定について

投稿者投稿内容
ASP.NET初心者
会議室デビュー日: 2004/08/13
投稿数: 19
投稿日時: 2005-01-24 18:33
ASP.NETで開発を行っています。
データグリッドに編集ボタンを配置して、データグリッド上で編集できるようにしていますが、編集ボタンをクリックした時にEditIndexプロパティを設定することによって自動的に表示されるテキストボックスのMaxLengthプロパティを設定したいのですが、どのようにすれば設定できるのでしょうか。
データグリッドコントロールのEditCommandイベントプロシージャのなかで、e.Item.Cells(n).Controls(n)で参照しようとしたところIndexが範囲外だというエラーが出てしまいます。
_________________
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-01-24 19:42
マルチポストのトラックバック
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200501/05010118.txt
_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-01-24 19:57
過去ログに、データグリッド内のコントロールにアクセスするための方法が記述されていますので、適当に検索されてください。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
ASP.NET初心者
会議室デビュー日: 2004/08/13
投稿数: 19
投稿日時: 2005-01-24 23:51
NAL-6295さん。
過去ログを「データグリッド」をキーワードに検索したのですが、該当するスレッドが見つかりませんでした。探し方が悪いのでしょうか。
ちなみにグリッド上のテキストボックスはテンプレート列で配置したものではありません。連結列として配置したものです。
お手数かけて申し訳ございません。
_________________
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-01-25 01:50
「データグリッド」で見つからなければ
「DataGrid」にしたり、思い切って「e.Item」にしたりと、
キーワードになりそうな単語でひたすら探すのが普通なんですが・・・。

まぁそれはさておき。
色々と調べられていると思いますが、もちろん.NET TIPSもご覧になりましたよね?

#あれ?編集時はテンプレート列になるんじゃ・・・?

_________________
徒然なるままに

[ メッセージ編集済み 編集者: まゆりん 編集日時 2005-01-25 02:08 ]
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2005-01-25 05:56
引用:

データグリッドに編集ボタンを配置して、データグリッド上で編集できるようにしていますが、編集ボタンをクリックした時にEditIndexプロパティを設定することによって自動的に表示されるテキストボックスのMaxLengthプロパティを設定したいのですが、どのようにすれば設定できるのでしょうか。


サンプルを作成しましたので参考にしてください。
[View Code]をクリックするとソースコードが表示されます。

http://aspnet.friendlysw.com/samples/articles/allow/031007-2.aspx

コード:

    Sub DataGrid1_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
      If e.Item.ItemType = ListItemType.EditItem Then
        Dim txtCompanyName As TextBox = CType(e.Item.Cells(1).Controls(0), TextBox)
        Dim txtContactName As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
        Dim txtPhone As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
    
        txtCompanyName.Width = Unit.Pixel(200)
        txtCompanyName.MaxLength = 200
      End If
    End Sub



_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2005-01-25 10:37
おはようございます。
引用:

Accessさんの書き込み (2005-01-25 05:56) より:
(省略)
コード:


Sub DataGrid1_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.EditItem Then
Dim txtCompanyName As TextBox = CType(e.Item.Cells(1).Controls(0), TextBox)
Dim txtContactName As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
Dim txtPhone As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)


txtCompanyName.Width = Unit.Pixel(200)
txtCompanyName.MaxLength = 200
End If
End Sub






今回の質問内容からですと、太字の箇所で躓いているのでは?
#引用を一部省略
_________________
徒然なるままに

[ メッセージ編集済み 編集者: まゆりん 編集日時 2005-01-25 10:38 ]
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-01-25 11:13
引用:

まゆりんさんの書き込み (2005-01-25 10:37) より:
今回の質問内容からですと、太字の箇所で躓いているのでは?


というよりも、もっと根本的な問題で躓いているように見えますね。
コントロールが「いつ」、「どのように」作られるのかの理解が欠けているように思えます。

スキルアップ/キャリアアップ(JOB@IT)