【问题标题】:I am unable to retrieve column value in a Telerik radgrid.我无法在 Telerik radgrid 中检索列值。
【发布时间】:2016-11-12 23:54:42
【问题描述】:
我正在尝试在选定行中选择列值,但我无法选择该行。好像点击了要选中的行后,并没有进入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);
}
}
}
【问题讨论】:
标签:
mysql
telerik
radgrid
data-retrieval
【解决方案1】:
您可以使用 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 管理器和面板。
【解决方案2】:
在您的 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" />。