2017-07-11 4 views
0

私はチェックボックスを使用してaspxGridviewを使用しています。今私は私が私のビジネスロジックを完了するためにサーバー側で取得する必要がある行の特定の列の値のいずれかをチェックする必要があります。私は以下のように行を選択し取得するauto postback真とチェックボックスにoncheckedeventを使用しようとしたコードを使用しているAspxGridViewチェックボックスのチェックカラム値

<dx:ASPxGridView KeyFieldName="PracticeID" ID="ASPxGrd" runat="server" ClientInstanceName="grid" 
 
          ClientIDMode="AutoID" AutoGenerateColumns="false" Width="100%" OnSelectionChanged="ASPxGrd_SelectionChanged"> 
 
          <Columns> 
 
           <dx:GridViewDataColumn VisibleIndex="0" Name="CheckBoxColumn"> 
 
            <DataItemTemplate> 
 
             <dx:ASPxCheckBox ID="ASPxCheckBox1" runat="server" OnCheckedChanged="ASPxCheckBox1_CheckedChanged" AutoPostBack="true"> 
 
             </dx:ASPxCheckBox> 
 
            </DataItemTemplate> 
 
           </dx:GridViewDataColumn> 
 
           
 
           <dx:GridViewDataColumn FieldName="PracticeName" Caption="Description" VisibleIndex="1"> 
 
           <FooterTemplate> 
 
            Total: 
 
           </FooterTemplate> 
 
           </dx:GridViewDataColumn> 
 
           </dx:ASPxGridView>

protected void ASPxCheckBox1_CheckedChanged(object sender, EventArgs e) 
 
     { 
 
      ASPxGridView grid = sender as ASPxGridView; 
 
      string currentMasterKey = Convert.ToString(grid.GetMasterRowKeyValue()); 
 
     }
以下 が使用GridViewのあります ですが、グリッドオブジェクトのヌル値を取得しています。 ヘルプが必要です。

答えて

0

例では、DataItemTemplateを使用しています。その場合、送信者はそのデータテンプレートに追加されたコントロール、つまりASPxCheckBoxになり、nullになっているグリッドbcozにキャストします。

下記の抜粋を試してください。

protected void ASPxCheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    ASPxCheckBox checkBox = sender as ASPxCheckBox; 
    var grid = (checkBox.NamingContainer as DevExpress.Web.ASPxGridView.GridViewDataItemTemplateContainer).Grid; 
    string currentMasterKey = Convert.ToString(grid.GetMasterRowKeyValue()); 
} 
+0

こんにちはヘマント、あなたの解決策も働いており、私の期待を満たしています。あなたの答えをアップアップする。 –

0

私は前にこの答えを発見し、それは以下のように正常に動作しています:

このコードを使用して


 

 
for (int i = 0; i < ASPxGrd.VisibleRowCount; i++) 
 
      { 
 
       ASPxCheckBox chk = ASPxGrd.FindRowCellTemplateControl(i, null, "ASPxCheckBox1") as ASPxCheckBox; 
 
       if (chk.Checked) 
 
       { 
 
        if (i == 0) 
 
        { 
 
         practiceName = ASPxGrd.GetRowValues(i, "PracticeName").ToString(); 
 
        } 
 
       } 
 
       }

私は、チェックボックスの列の値を選択し取得することができています。

関連する問題