2011-09-16 33 views
0

現在ASPxGridViewコントロールを使用しているaspx Webサイトで作業しています。私は、GridView上にデータを表示させたいのです。しかし、私の問題は、編集ボタン(コマンド列の下でコントロール自体によって提供される)をクリックしたときに発生します。上記のボタンをクリックすると、GridViewは行を編集可能なものに変更します。しかし、私はテキストボックス内の値を変更することはできません。 ReadOnlyプロパティをGridViewのスマートタグとxmlソースの両方でfalseに設定していることに注意してください。ASPxGridViewはReadOnly Falseで行を編集できません

ReadOnlyプロパティがtrueに設定されていると、テキストボックスの背景色が青色に変わるテストフラグを作成しようとしました。プログラムの実行後、ReadOnlyがtrueまたはfalseに設定されているかどうかに関わらず、テキストボックスは青色で表示されます。

これらのテキストボックスを編集可能にする他のプロパティはありますか?どうもありがとう!

乾杯!

+0

「ただし、テキストボックス内の値を変更できません」と言えば、セルに入力できないということですか? – Metaller

+0

はい。私はセルに入力することはできません。たとえば、セル内の元の値が「1000」の場合、編集ボタンをクリックすると、「1000」内に同じ値のテキストボックスバージョンが表示されます。私はそれを編集することはできません。私はそれをタイプしたり変更することはできません。応答していただきありがとうございます。 – Smiley

+0

KeyFieldNameグリッドのプロパティを設定しましたか?また、RowUpdatingなどのイベントを処理するか、データソースコントロールを使用する場合はUpdateCommandがあることを確認してください。 – kolbasov

答えて

5

私は今、この同じ問題に直面しました。匿名型にあなたのデータソースを設定している場合は、この症状が現れることができます。

void BindDataGrid() 
{ 
    var gridData = from cm in MyCollection 
        select new 
        { 
         UniqueId = cm.UniqueId, 
         Min = cm.SomeNumber ?? 0, 
         Max = cm.SomeOtherNumber ?? 0, 
         Description = cm.Description 
        }; 

    this.myGrid.DataSource = gridData; 
    this.myGrid.DataBind(); 
} 

修正は、グリッドが使用するクラスを作成することでした。その後、各セルのデータ型を把握することができた、と彼らはUIで編集可能になっ:

public class MyGridViewModel 
{ 
    public Guid UniqueId { get; set; } 
    public int Min { get; set; } 
    public int Max { get; set; } 
    public string Description { get; set; } 
} 

void BindDataGrid() 
{ 
    var gridData = from cm in MyCollection 
        select new MyGridViewModel() 
        { 
         UniqueId = cm.UniqueId, 
         Min = cm.SomeNumber ?? 0, 
         Max = cm.SomeOtherNumber ?? 0, 
         Description = cm.Description 
        }; 

    this.myGrid.DataSource = gridData; 
    this.myGrid.DataBind(); 
} 
0

は私が保護されたプロパティを編集しようとしているのミスを犯しました。プロパティにpublic getterとprivateまたはprotectedセッターがある場合、それは編集フォームの読み取り専用フィールドとして表示されます。これが誰かに助けになることを願っています。

関連する問題