2016-07-11 12 views
0

選択した行の列値を選択しようとしていますが、行を選択できません。選択する行をクリックした後、if文には入りません。 if文を(dataItem.Selected = true)に変更して "="を1つだけ使用すると、すべての行の請求書IDが返されます。この問題の解決方法に関するアドバイスはありますか?Telerik radgridで列の値を取得できません。

protected void RadGrid1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     var a =""; 
     foreach (GridDataItem dataItem in RadGrid1.MasterTableView.Items) 
     { 
      if (dataItem.Selected == true) 
      { 

       a = dataItem.GetDataKeyValue("InvoiceId").ToString(); 
       Response.Write(a); 
      } 
     } 


    } 

答えて

0

RadGridで複数の選択を許可するのか、単一の選択のみを許可しますか?

私にとって、単一行選択を行うとforeachループコードブロックが正しく見えません。

protected void RadGrid1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // get selected row 
    GridDataItem item =(GridDataItem)RadGrid1.SelectedItems[0]; 
} 

また、もう一つのポイントは、RadGridのSelectedIndexChangedイベントがサーバー側で適切に発射されるように、あなたがtrueにEnablePostBackOnRowClickプロパティを設定する必要があります。

<ClientSettings Selecting-AllowRowSelect="true" EnablePostBackOnRowClick="true"> 
</ClientSettings> 

クライアント側から行選択コマンドを起動する場合は、JSで行クリックイベントを追加する必要があります。

function RowClick(sender, eventArgs) { 
    sender.get_masterTableView().fireCommand("Select", eventArgs.get_itemIndexHierarchical()); 
} 

次に、そのJS関数をあなたのaspxの<ClientEvents OnRowClick="RowClick" />に関連付けます。

0

RadGrid1.SelectedItems [0]を使用すると、選択したアイテムを取得できます。

protected void RadGrid1_ItemChanged(object sender, EventArgs e) 
{ 
    var myDataItem = RadGrid1.SelectedItems[0] as GridDataItem; 
    if (myDataItem != null) 
    { 
     var name = myDataItem ["InvoiceId"].Text; 
    } 
} 

そしてウッディキディが正しいです。ポストバックとallow行の選択を確認してください。
もしajaxを使っていたら、Ajaxのマネージャとパネルを忘れてはいけません。

関連する問題