- PR -

DataGrid内のTextBoxなどのイベント取得方法

投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-09-28 07:57
@ITさんへ:
上のスレッドを編集するとこのようにHTMLタグが表示されます。
対応お願いします。

<!-- BBCode Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH="90%" CELLSPACING=0 CELLPADDING=0><TR><TD WIDTH="5%" NOWRAP><FONT SIZE="-1">コード:</FONT></TD><TD WIDHT="95%"><HR SIZE="1"></TD></TR><TR><TD COLSPAN="2"><PRE>
Sub txtCustomerName_TextChanged(source As Object, e As EventArgs)
Dim oTextBox As TextBox = CType(source, TextBox)
Dim oContainer As DataGridItem = CType(oTextBox.NamingContainer, DataGridItem)
Dim oLabel As Label = CType(oContainer.FindControl("lblCustomerName"), Label)
oLabel.Text = oTextBox.Text
End Sub

<Columns>
<asp:TemplateColumn HeaderText="Customer Name">
<ItemTemplate>
<asp:Label id="lblCustomerName" runat="server"
Text='<%# Container.DataItem("CustomerName") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtCustomerName" runat="server"
Text='<%# Container.DataItem("CustomerName") %>'
MaxLength="40"
AutoPostBack="True"
OnTextChanged="txtCustomerName_TextChanged" />
<asp:Label id="lblCustomerName" runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
</Columns></PRE><HR SIZE="1"></TD></TR></TABLE><!-- BBCode End -->


[ メッセージ編集済み 編集者: Dr ADO.NET 編集日時 2002-09-28 07:59 ]
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2002-10-01 03:48
Dr.ADO.NETさん、サンプルありがとうございます。

試しても中々うまくいかなかったのですが、

Private Sub txtCustomerName_TextChanged(source As Object, e As EventArgs)

としていた、Privateをとって、

Sub txtCustomerName_TextChanged(source As Object, e As EventArgs)

としたところ、とりあえず正常に動作したのを確認できました。
でも、なぜ他のイベントプロシージャにはPrivateがついているのに
この場合はPrivateをとらなければ動かなかったのかは不明です。
うーん???
樋口/@IT
@ITスタッフ
会議室デビュー日: 2001/07/26
投稿数: 293
お住まい・勤務地: 東京都
投稿日時: 2002-10-01 09:39
@ITの樋口です。
引用:

Dr ADO.NETさんの書き込み (2002-09-28 07:57) より:
@ITさんへ:
上のスレッドを編集するとこのようにHTMLタグが表示されます。
対応お願いします。


ご報告ありがとうございます。調査いたします。
_________________
樋口 理
株式会社アットマーク・アイティ
樋口/@IT
@ITスタッフ
会議室デビュー日: 2001/07/26
投稿数: 293
お住まい・勤務地: 東京都
投稿日時: 2002-10-01 11:21
@ITの樋口です。
引用:

Dr ADO.NETさんの書き込み (2002-09-28 07:57) より:
@ITさんへ:
上のスレッドを編集するとこのようにHTMLタグが表示されます。
対応お願いします。


バグでした。修正いたしました。ご迷惑をおかけしました。
ところで、システム上の不具合などについては、ご面倒でもバグレポート・システムへの要望会議室に新しいスレッドで書き込んでいただけますようご協力をお願いいたします。せっかくの本題のスレッドをこういう「業務連絡」でお邪魔するのが心苦しいので……
_________________
樋口 理
株式会社アットマーク・アイティ
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2002-10-01 11:30
了解しました。
今後気をつけます。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-11-06 15:36
確認がめちゃめちゃ遅くなってしまいましたが(笑)

ばっちり動きました!>Dr ADO.NETさん。
どうもありがとうございます。
うーむ目から鱗。オブジェクト指向って感じですよねぇ(謎)

ちなみに僕がやったのは、Repeater内のコンボボックスのチェンジイベントです。サンプルソールは以下の通りです。

Sub PSDL_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim psd As DropDownList = CType(sender, DropDownList)
Dim oCon As RepeaterItem = CType(psd.NamingContainer, RepeaterItem)
Dim drv As DataRowView = Session("Sbview")(oCon.ItemIndex)
drv.BeginEdit()
drv("注文数") = psd.SelectedItem.Value
drv("金額") = drv("単価") * psd.SelectedItem.Value
drv.EndEdit()
basrep.DataSource = Session("Sbview")
basrep.DataBind()
End Sub

実際のソースなのでちょっとわかりにくいですね。

>としていた、Privateをとって、

どうもPrivateがあるとASPX側からはスコープが届かないみたいですね。なので、恐らく他のスコープなら大丈夫なのかと。

大変参考になりました。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------

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