- - PR -
DataGridでのDataViewの更新
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-03-30 15:09
DataGridの編集モードから、テンプレートコントロールの値を更新したいのですが、
うまくいきません。 何か問題ありますでしょうか? 下記 ------------------------------------------------------------------------------- Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As_ System.Web.UI.WebControls.DataGridCommandEventArgs) Handles_ DataGrid1.UpdateCommand 'キーの値を取得する() Dim Keyvalue As Object Keyvalue = DataGrid1.DataKeys(e.Item.ItemIndex) 'そのキーを持つDataRowViewオブジェクトを見つける Dim orgSort As String = DataView1.Sort DataView1.Sort = "ID" Dim dRowview As DataRowView() = DataView1.FindRows(Keyvalue) DataView1.Sort = orgSort If dRowview.Length = 1 Then '見つかったとき '値をDataRowViewオブジェクトに格納する With dRowview(0) .BeginEdit() .Item("roll") = CType(e.Item.FindControl("drp_roll"), DropDownList).SelectedValue .Item("name") = CType(e.Item.FindControl("txt_name"), TextBox).Text .Item("Date") = CType(e.Item.FindControl("txt_Date"), TextBox).Text End With '更新する SqlDataAdapter1.Update(DataView1.Table.DataSet) End If DataGrid1.EditItemIndex = -1 DataGrid1.DataBind() End Sub ------------------------------------------------------------------------------- うまくコントロールの値がとれてないようです。 編集モードでテンプレートコントロールに値を入力して 更新ボタンを押下すると、クリアされて編集モードが終了してしまいます。 いつも初歩的質問で申し訳ありませんが、 よろしくお願いします。 | ||||
|
投稿日時: 2004-03-30 16:04
NAL-6295です。 BeginEditしかしてないからかもしれません。 確信的にそうしてるのか、ケアレスミスなのかわからないので両方書きますが 確信的にそうしてるなら、オンラインマニュアルのDataRowView.BeginEditの項を ケアレスミスなら、自分のコードを 見直すと良いかもしれません。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-03-30 16:06 ] | ||||
|
投稿日時: 2004-03-30 16:31
もしかしてDataView1の件数が0になっていませんか
もし0件ならDataView1にデータを読み込む部分を見直してみたらどうでしょうか 少なくともPageLoad時点ではDataView1を再構築しないといけません | ||||
|
投稿日時: 2004-03-30 16:53
ゆうじゅんさん、NAL-6295さん
ありがとうございました! 見直してみたところ、 DataViewでの構築部分が間違っていました。 ありがとうございました。 ケアレスミスだらけで恥ずかしいですが・・。 | ||||
1
