1

こんにちは
、ASPxGridView では、VisibleIndex または KeyValue で行を取得して、列の値を変更できるようにする方法はありますか?

var row = myGrid.SelectRowByKeyValue(myKeyValue);
OR:
var row = myGrid.SelectRowByVisibleIndex(myKeyValue);  

row["Column1"] = true; 

編集:
私がやろうとしていることは、ボタンを押すたびに、特定の行を1つチェックしたいということです(すべてのページをリロードしないようにajaxを使用しています);

ありがとう

4

2 に答える 2

3

これは、 ASPxGridView.GetRow()メソッドを使用して実行できます。DataRowの値を変更するだけでは不十分であることに注意してください。これらの変更を保持する場合は、DBに保存します。

非バインド列を使用しているため、CustomUnboundColumnDataイベントを処理し、このイベントハンドラー内でこの行の変更されたデータを提供する必要があります。一般的なアプローチは、「バインドされていない列のデータの提供」トピックで説明されています。それでも問題が解決しない場合は、詳しく説明してください。

アップデート

あなたのアプローチは正しくありません。ASPxGridViewは、特定のセル(TD)のテキストを設定するメソッドを提供していません。代わりに、グリッドにCustomUnboundColumnDataイベントを発生させる必要があります。これは、ASPxGridViewのDataBindメソッドを使用して実行できます。このイベントハンドラーでは、処理された行のKeyField値を決定し、ボタンがクリックされた行のkeyField値と比較して、必要な値を返す必要があります。これが私がこの機能を実装する方法です...

于 2011-05-11T11:40:09.407 に答える
2

このコードを使用して解決しました:

for (int i = 0; i < myGridView.VisibleRowCount; i++)
{
 if ( [My condition] )
   {
     (
       (CheckBox)myGridView
         .FindRowCellTemplateControl(i,
                                     myGridView.Columns["MyColumnName"] as GridViewDataColumn,
                                     "My_Unbound_Control_Name"
                                    )
     ).Checked = true;
   }
}  

私はそれを行う正しい方法ではないかもしれませんが、別の方法で解決できませんでした。

于 2011-05-12T14:08:12.813 に答える