2010-05-17 2 views
0

Не уверен, если название этого вопроса имеет смысл, но вот моя проблема:Доступ к данным Linq в Telerik сетка метода ItemCreated

У меня есть Telerik сетка, связанная с объектом данных Linq, однако, я ограничиваю поле вернулось :

<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

Что-то вроде этого:

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") 



    } 
} 

Juding тем, что вы хотите nkow, как это сделать - возможно, вы должны выполнять свою задачу по событию OnRowDataBinding.

+0

Спасибо, но вы полностью упустили точку вопроса. – Jack

0

Нет, я не пропустил вашу точку. Ярлык - это такой же объект, как объект 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"]; 
    } 
} 
+0

Или вместо хеш-таблицы, вы попробовали Person person = (Person) ((GridDataItem) e.Item); – TheGeekYouNeed

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; 

    } 
} 
Смежные вопросы