使用Javascript读取telerik radgrid组件的行没有问题,但是当发生回发时我似乎无论如何都会发现访问行数据服务器端。我花了很多年寻找解决方案,但没有运气。 任何指针都将非常感激。
贝
答案 0 :(得分:16)
您可能希望查看OwnerTableView对象的DataKeyValues属性,该属性将允许您访问表示给定行中字段的值集合。我在EditCommand事件处理程序中使用它,因为如果我的站点用户单击链接以编辑网格中的行,则会将其定向到编辑页面,并且我需要传递有关查询中给定行的某些信息字符串。
如果这是您所需要的,您还需要定义应通过此属性提供哪些字段。为此,请查看网格属性表中的MasterTableView.DataKeyNames属性。您基本上指定了以逗号分隔的字段名称列表。
答案 1 :(得分:5)
答案 2 :(得分:3)
服务器端很容易:
GridItemCollection gridRows = TestGrid.Items;
foreach (GridDataItem data in gridRows)
{
ItemClass obj = (ItemClass)data.DataItem;
}
这是我不知道的客户端部分! :
答案 3 :(得分:1)
private Int32 GetID()
{
foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
{
if (dataItem.Selected == true)
{
Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
return ID;
}
}
throw new ArgumentNullException("Id Not found");
}
答案 4 :(得分:0)
private Int32 GetID()
{
foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items)
{
if (dataItem.Selected == true)
{
// Int32 ID = (Int32)dataItem.GetDataKeyValue("ID");
Int32 ID =Convert.ToInt32(dataItem.GetDataKeyValue("ID"));
return ID;
}
}
}
//this will work
答案 5 :(得分:0)
这是适合我并使用RadGrid.SelectedItems集合的那个。
protected void LinkButton1_Click(object sender, EventArgs e)
{
List<Guid> OrderIdList = new List<Guid>();
foreach (GridDataItem OrderItem in this.RadGrid1.SelectedItems)
{
OrderIdList.Add(new Guid(OrderItem.GetDataKeyValue("OrderId").ToString()));
}
}
答案 6 :(得分:0)
如果您在标记或页面init中为动态控件正确创建了控件,那么RadGrid将正确恢复状态。
您可以访问从数据源加载的初始值,如下面的示例所示,前提是您告诉相关的表格视图以保持数据键中的列。
protected T GetInitialGridData<T>(GridDataItem item, string uniqueColumnName) {
item.ThrowIfNull("item");
uniqueColumnName.ThrowIfNullOrEmpty("uniqueColumnName");
return (T)item.OwnerTableView.DataKeyValues(gridItem.ItemIndex)(columnName);
}
如果您使用的是动态自定义模板列,并且需要获取现在可能处于其状态的任何值,则可以使用:
protected string GetCustomTextBoxValue(GridDataItem item, string controlID) {
item.ThrowIfNull("item");
controlID.ThrowIfNullOrTrimmedEmpty("controlID");
return ((TextBox)item.FindControl(controlID)).Text;
}