我无法在 Telerik radgrid 中检索列值。
I am unable to retrieve column value in a Telerik radgrid.
我正在尝试select select 行中的列值,但我无法select 该行。好像点击要selected的行后,并没有进入if语句。如果我将 if 语句更改为 (dataItem.Selected = true) 只有一个“=”,它会进入但 returns 所有行的发票 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 允许多个 selection 还是只允许一个 selection?
对我来说,如果你做单行 selection,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>
但是如果你想从客户端触发行select命令,那么你应该用JS添加一个行点击事件。
function RowClick(sender, eventArgs) {
sender.get_masterTableView().fireCommand("Select", eventArgs.get_itemIndexHierarchical());
}
然后将该 JS 函数关联到您的 aspx 中的 <ClientEvents OnRowClick="RowClick" />
。
您可以使用 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 管理器和面板。
我正在尝试select select 行中的列值,但我无法select 该行。好像点击要selected的行后,并没有进入if语句。如果我将 if 语句更改为 (dataItem.Selected = true) 只有一个“=”,它会进入但 returns 所有行的发票 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 允许多个 selection 还是只允许一个 selection?
对我来说,如果你做单行 selection,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>
但是如果你想从客户端触发行select命令,那么你应该用JS添加一个行点击事件。
function RowClick(sender, eventArgs) {
sender.get_masterTableView().fireCommand("Select", eventArgs.get_itemIndexHierarchical());
}
然后将该 JS 函数关联到您的 aspx 中的 <ClientEvents OnRowClick="RowClick" />
。
您可以使用 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 管理器和面板。