I have problem in radgrid when biding data by List (not EntitiesDataSource or LinqDataSource or SqlDatasource).
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True" CellSpacing="0" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" ShowStatusBar="True" OnDeleteCommand="RadGrid1_DeleteCommand" OnInsertCommand="RadGrid1_InsertCommand" OnNeedDataSource="RadGrid1_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand" GridLines="None" Skin="Metro" OnItemDataBound="RadGrid1_ItemDataBound"> <ExportSettings ExportOnlyData="True" IgnorePaging="True" OpenInNewWindow="True"> <Excel Format="Biff" /> </ExportSettings> <MasterTableView CommandItemDisplay="Top" EditMode="InPlace" InsertItemPageIndexAction="ShowItemOnCurrentPage" AutoGenerateColumns="False" DataKeyNames="ID" GridLines="Both"> <CommandItemSettings ExportToPdfText="Export to PDF" AddNewRecordText="Thêm mới" ExportToExcelText="Xuất Excel" RefreshText="Làm mới" ShowExportToExcelButton="True"> </CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridDropDownColumn DataField="ProviderId" DataType="System.Int64" FilterControlAltText="Filter ProviderId column" HeaderText="Nhà cung cấp" SortExpression="ProviderId" ListTextField="ProviderName" ListValueField="ProviderId" UniqueName="ProviderId" ColumnEditorID="GridDropDownColumnEditor1" DropDownControlType="RadComboBox" runat="server"> </telerik:GridDropDownColumn> <%-- <telerik:GridTemplateColumn HeaderText="Nhà cung cấp" UniqueName="ProviderID"> <ItemTemplate> <asp:DropDownList ID="ddlProvider" runat="server"/> </ItemTemplate> </telerik:GridTemplateColumn>--%> <telerik:GridBoundColumn DataField="Buys" DataType="System.Decimal" FilterControlAltText="Filter Buys column" HeaderText="Buys" SortExpression="Buys" UniqueName="Buys"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="Date" DataType="System.DateTime" FilterControlAltText="Filter Date column" HeaderText="Date" SortExpression="Date" UniqueName="Date"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="Commen" FilterControlAltText="Filter Commen column" HeaderText="Commen" SortExpression="Commen" UniqueName="Commen"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ConfirmText="Bạn muốn xóa hóa đơn này ?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" /> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="MyImageButton" Width="30px"></ItemStyle> </telerik:GridEditCommandColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> </telerik:RadGrid>
And here is code behind
protected void Page_Load(object sender, EventArgs e)
{
}
protected void RadGrid1_DeleteCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
Int64 purchaseId = Convert.ToInt64((e.Item as GridDataItem).GetDataKeyValue("ID"));
INPUTITEMDAO.Delete(purchaseId);
RadGrid1.Rebind();
//Reresh grid
RadGrid1.MasterTableView.ClearEditItems();
}
protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem item = e.Item as GridEditableItem;
Hashtable values = new Hashtable();
item.ExtractValues(values);
INPUTITEM objInputItem=new INPUTITEM();
item.UpdateValues(objInputItem);
INPUTITEMDAO.InsertAndUpdate(objInputItem);
RadGrid1.Rebind();
RadGrid1.MasterTableView.ClearEditItems();
}
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem item = e.Item as GridEditableItem;
Int64 purchaseId =Convert.ToInt64(item.GetDataKeyValue("ID").ToString());
INPUTITEM objInputItem = DataOut.GetAllINPUTITEMList().Where(i => i.ID == purchaseId).FirstOrDefault();
item.UpdateValues(objInputItem);
INPUTITEMDAO.InsertAndUpdate(objInputItem);
RadGrid1.Rebind();
RadGrid1.MasterTableView.ClearEditItems();
}
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = DataOut.GetAllINPUTITEMList();
}
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
GridDataItem dataItem = e.Item as GridDataItem;
if (e.Item is GridEditableItem&& (e.Item as GridEditableItem).IsInEditMode)
{
GridEditManager editMan = editedItem.EditManager;
GridDropDownListColumnEditor editor = editMan.GetColumnEditor("ProviderId") as GridDropDownListColumnEditor;
//in case you have RadComboBox editor for the GridDropDownColumn (this is the default editor),
//you will need to use ComboBoxControl below instead of DropDownListControl
//Then you can modify the list control as per your custom conventions
if (editor != null)
{
editor.DataSource = PROVIDERDAO.GetAllPROVIDERList();
editor.DataBind();
}
}
}
i don't know what problem that i run project not show ProviderId column but when i click edit it is show
I Want grid show ProviderId column with ListTextField = "ProviderName" when page loading because eidt i had done ok.
Please help me ?