我无法在Telerik radgrid中检索列值。

时间:2016-07-11 06:02:41

标签: mysql telerik radgrid data-retrieval

我正在尝试在所选行中选择列值,但我无法选择该行。似乎在单击要选择的行之后,它不会进入if语句。如果我将if语句更改为(dataItem.Selected = true)只有一个“=”,它会进入但返回所有行的发票ID。有关如何解决此问题的任何建议吗?

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);
            }
        }


    }

2 个答案:

答案 0 :(得分:0)

您是否允许RadGrid中的多个选择或仅允许单个选择?

对我来说,如果进行单行选择,foreach循环代码块似乎不正确。

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

另外,另一点是你应该将EnablePostBackOnRowClick属性设置为true,以便在服务器端正确触发RadGrid的SelectedIndexChanged事件。

<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" />相关联。

答案 1 :(得分: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;   
     }   
}

Woodykiddy是对的。检查您的回发和允许行选择 如果你使用ajax,请不要忘记rad Ajax管理器和面板。