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

わんくま同盟

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

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


(過去ログ 72 を表示中)
■41620 / )  GridViewの編集時DropDownList更新されない
□投稿者/ zi_wa (5回)-(2009/09/25(Fri) 18:08:52)

分類:[.NET 全般] 

GRIDVIEWを作成し、そこにテーブルAの内容を表示させています。

・テーブルAには商品、区分名、ケース数、単価のフィールドがあり、
 区分名のフィールドのみ値がNULLの状態です。

・テーブルBには区分名のみが入っています。

 GRIDVIEWの区分名の欄を編集時DropDownlistにして、
 DropDownlistにテーブルB.区分名を表示。更新すると、選択した区分名が
 テーブルA.区分名に格納されるようにしたいと思っています。


以下作業の流れですが、
@テーブルAをGRIDVIEWで表示。編集機能を付けました。
この状態だと編集画面のときに入力ボックスが現われ、正常に入力内容が更新されています。

AGRIDVIEWの区分名の項目をTemplatefieldにし、
 Templateの編集で、区分名のEdititemTemplateにテーブルBのSqldatasourceを設定し、
 それに関連づけたDropDownlistを設定しました。
 *Selectedvalueには何も書き込んでいません


BテーブルA.区分名がNULLのためそのままだと「SelectedValuのプロパティーが一覧にありません。」と出る為
 .VBに以下を書き込みました。

Protected Sub DropDownListCommentKbn_DataBound(ByVal sender As Object, ByVal e As EventArgs)
Dim ddl As DropDownList = DirectCast(sender, DropDownList)
Dim li As ListItem

li = New ListItem("(選択)", "")
ddl.Items.Insert(0, li)

Dim dtv As DetailsView = DirectCast(ddl.NamingContainer, DetailsView)

If dtv.DataItem IsNot Nothing Then

Dim com_kbn_mei As String = DirectCast(dtv.DataItem, DataRowView)("KBN_MEI").ToString()

ddl.ClearSelection()

li = ddl.Items.FindByValue(com_kbn_mei)

If li IsNot Nothing Then
li.Selected = True

End If

End If
End Sub

C編集画面にすると、意図した通り、GRIDVIEWの区分名の欄がDropDownlistになり、
 DropDownlistにテーブルB.区分名が表示されていました。


ここまできたのですが、いざ更新ボタンをクリックしても、テーブルA.区分名には何も格納されません。
GRIDVIEWの他の項目欄(DropDownlistにした区分名以外)は入力ボックスのままなのですが、
これらは入力内容が更新されています。

バインドされない?からでしょうか。
アドバイスよろしくお願い致します。

返信 編集キー/


管理者用

- Child Tree -