不确定这个问题的标题是否有意义,但这是我的问题:
我有一个绑定到Linq数据对象的telerik网格,但是,我限制了返回的字段:
<IQueryable>filter = data.Select(x => new {x.ID, x.Name, x.Age});
我想在网格的ItemCreated方法中访问这些字段:
protected void rgPeople_ItemCreated(object sender, GridItemEventArgs e)
{
Telerik.Web.UI.GridDataItem item = (GridDataItem)e.Item;
?????? Person = (???????)e.Item.DataItem;
}
我该声明什么??????因为我可以使用:
String ID = Person.ID;
String Name = Person.Name; etc
答案 0 :(得分:1)
我认为我能够在ItemDataBound事件处理程序中执行您想要的操作。下面是我的代码的一部分。
protected void grMain_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
//Now I can get at the object from the list that the row is bound to
PricingCandidate candidate = (PricingCandidate)e.Item.DataItem;
}
}
答案 1 :(得分:0)
这样的事情:
protected void rgPeople_ItemCreated(object sender, GridItemEventArgs e)
{
if(e.Item.ItemType = GridItemType.AlternatingItem Or e.Item.ItemType = GridItemType.Item)
{
Telerik.WebControls.GridDataItem item = e.Item;
Label lbl as Label;
lbl= item("ColumnName").FindControl("lblName")
}
}
根据您想知道的方式做什么 - 也许您应该在Row DataBinding事件上执行任务。
答案 2 :(得分:0)
不,我没有错过你的观点。 Label与GridDataItem或“Person”对象一样多。我知道你的观点是用勺子作为解决方案,所以你走了。
protected void rgPeople_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
var item = ((GridDataItem)e.Item);
Hashtable values = new Hashtable();
item.ExtractValues(values);
string Name = (string)values["Name"];
string ID = (string)values["ID"];
string Age = (string)values["Age"];
}
}