我正在关注使用needdatasource(click here to view telerik demo)将数据绑定到radgrid的示例。
这是我的HTML代码,
<telerik:RadGridID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource" AllowSorting="True" AllowPaging="True" ShowGroupPanel="True" GroupingSettings-CaseSensitive="false" AllowFilteringByColumn="True" CellSpacing="-1" GridLines="Both"
Skin="Metro" CssClass="rad_header_style" Width="100%">
</telerik:RadGrid>
以下是我如何从代码中绑定数据
using System;
using System.Data;
using System.Linq;
using Telerik.Web.UI;
publicpartialclasstime_and_action_ganttchart_details : System.Web.UI.Page
{
protectedvoidPage_Load(objectsender, EventArgs e)
{
}
protectedvoidRadGrid1_NeedDataSource(objectsender, GridNeedDataSourceEventArgs e)
{
shorttechpackID = 93; // short.Parse(Request.QueryString[0]);
DataTable dt = newDataTable();
dt.Columns.Add("Customer", typeof(string));
dt.Columns.Add("Account", typeof(string));
dt.Columns.Add("Season", typeof(string));
dt.Columns.Add("Program", typeof(string));
dt.Columns.Add("Tech Pack Name", typeof(string));
dt.Columns.Add("Design Ref", typeof(string));
dt.Columns.Add("Stroke", typeof(string));
dt.Columns.Add("Type", typeof(string));
dt.Columns.Add("Assortment Name", typeof(string));
dt.Columns.Add("Component", typeof(string));
dt.Columns.Add("RM Description", typeof(string));
dt.Columns.Add("Supplier", typeof(string));
dt.Columns.Add("CSP", typeof(string));
dt.Columns.Add("Mode", typeof(string));
dt.Columns.Add("RM Color Code", typeof(string));
dt.Columns.Add("RM Color Name", typeof(string));
dt.Columns.Add("Silhoutte", typeof(string));
dt.Columns.Add("Garment Number", typeof(string));
using(PDLC.Data.PDLCEntities context = newPDLC.Data.PDLCEntities())
{
var version = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID).Select(s => new{ s.VersionID }).Max(p => p.VersionID);
var distinctEvents = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version).Select(s => new{ s.EventText, s.EventOrder }).Distinct().OrderBy(o => o.EventOrder);
foreach(var eventname indistinctEvents)
{
dt.Columns.Add(eventname.EventText, typeof(string));
dt.Columns.Add("Actual "+ eventname.EventText, typeof(string));
dt.Columns.Add("Committed "+ eventname.EventText, typeof(string));
}
var assortmentIdList = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version).Select(s => new{ s.AS_ID }).Distinct();
foreach(var assortmentId inassortmentIdList)
{
var rawMaterialList = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version && x.AS_ID == assortmentId.AS_ID).Select(s => new{ s.RawMaterialID }).OrderBy(o => o.RawMaterialID).Distinct();
foreach(var rawmaterial inrawMaterialList)
{
DataRow dr = dt.NewRow();
var headerDetails = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version && x.AS_ID == assortmentId.AS_ID && x.RawMaterialID == rawmaterial.RawMaterialID).Select(s => new
{
s.Cust_Name,
s.Account_Name,
s.Season_Name,
s.ProgramName,
s.Design_Ref,
s.Stroke,
s.StyleTypeName,
s.Component_Name,
s.Description60Digit,
s.sales_office_name,
s.Color_Code,
s.Color_Name,
s.ShapeName,
s.GMT_ID,
s.TP_Name,
s.Assortment_name
}).Distinct().First();
dr["Customer"] = headerDetails.Cust_Name;
dr["Account"] = headerDetails.Account_Name;
dr["Season"] = headerDetails.Season_Name;
dr["Program"] = headerDetails.ProgramName;
dr["Tech Pack Name"] = headerDetails.TP_Name;
dr["Design Ref"] = headerDetails.Design_Ref;
dr["Stroke"] = headerDetails.Stroke;
dr["Type"] = headerDetails.StyleTypeName;
dr["Assortment Name"] = headerDetails.Assortment_name;
dr["Component"] = headerDetails.Component_Name;
dr["RM Description"] = headerDetails.Description60Digit;
dr["Supplier"] = headerDetails.sales_office_name;
dr["CSP"] = "CSP";
dr["Mode"] = "Mode";
dr["RM Color Code"] = headerDetails.Color_Code;
dr["RM Color Name"] = headerDetails.Color_Name;
dr["Silhoutte"] = headerDetails.ShapeName;
dr["Garment Number"] = headerDetails.GMT_ID;
var eventIdList = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version && x.AS_ID == assortmentId.AS_ID && x.RawMaterialID == rawmaterial.RawMaterialID).Select(s => new{ s.EventID, s.EventOrder, s.EventText }).Distinct().OrderBy(o => o.EventOrder);
foreach(var eventId ineventIdList)
{
var timeandactiondates = context.V_TimeAndAction_TechPackLeadTime.Where(x => x.TP_ID == techpackID && x.VersionID == version && x.AS_ID == assortmentId.AS_ID && x.RawMaterialID == rawmaterial.RawMaterialID && x.EventID == eventId.EventID).Select(s => new{ s.TimeAndActionES, s.ActualDate, s.CommittedDate }).Distinct().FirstOrDefault();
DateTime timeandactiones = (DateTime)timeandactiondates.TimeAndActionES;
dr[eventId.EventText] = timeandactiones.ToShortDateString();
if(timeandactiondates.ActualDate != null)
{
DateTime timeandactionactual = (DateTime)timeandactiondates.ActualDate;
dr["Actual "+ eventId.EventText] = timeandactionactual.ToShortDateString();
}
else
{
dr["Actual "+ eventId.EventText] = timeandactiondates.ActualDate;
}
if(timeandactiondates.CommittedDate != null)
{
DateTime timeandactualcommitted = (DateTime)timeandactiondates.CommittedDate;
dr["Committed "+ eventId.EventText] = timeandactualcommitted.ToShortDateString();
}
else
{
dr["Committed "+ eventId.EventText] = timeandactiondates.CommittedDate;
}
}
dt.Rows.Add(dr);
}
}
}
RadGrid1.DataSource = dt;
}
}
现在我想要隐藏过滤器图标并将列搜索过滤条件设置为包含(CurrentFilterFunction =&#34;包含&#34; ShowFilterIcon =&#34; false&#34;)。
希望尽快收到你的回复。谢谢。
答案 0 :(得分:0)
你有三个选择
使用OnColumnCreated事件,event arguments为您提供列
或者,使用Page_PreRender事件并循环遍历RadGrid1.Columns集合。如果您知道所有字段名称,也可以使用RadGrid1.MasterTableView.GetColumnSafe(&#34; DataSourceFieldName&#34;)来获取列。
或者,使用所需的设置在标记中声明您的列