【问题标题】:Accessing Linq data in telerik grid ItemCreated method在 Telerik 网格 ItemCreated 方法中访问 Linq 数据
【发布时间】:2010-05-17 01:09:00
【问题描述】:

不确定这个问题的标题是否有意义,但这是我的问题:

我有一个绑定到 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

【问题讨论】:

    标签: c# asp.net linq data-binding telerik


    【解决方案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;
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      类似这样的:

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

      根据你想知道如何做来判断 - 也许你应该在 OnRowDataBinding 事件上执行你的任务。

      【讨论】:

        【解决方案3】:

        不,我没有错过你的意思。 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"];
            }
         }
        

        【讨论】:

        • 或者不是哈希表,你试过Person person = (Person)((GridDataItem)e.Item);
        猜你喜欢
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2015-10-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-04
        相关资源
        最近更新 更多