我正在尝试在选定的行中选择一个列值,但无法选择该行。似乎在单击要选择的行后,它没有进入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);
}
}
}
最佳答案
您是否在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" />
关联。关于mysql - 我无法在Telerik radgrid中检索列值。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38300093/