Hello,
I need to change dataSource in DropDownList(ddl1) in RadGrid when the client choosed value in other dropDownList(ddl2) in RadGrid.
In ItemCreated I registered to event selectIndexChanged of ddl2
And in the event I changed the dataSource of ddl1(as I saw on your instructions)
Here's the code:
protected void Grid_ny_ParticipationStatus_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is Telerik.Web.UI.GridEditableItem && e.Item.IsInEditMode || e.Item is Telerik.Web.UI.GridEditableItem && e.Item.OwnerTableView.IsItemInserted)
{
ddlActive = (e.Item as Telerik.Web.UI.GridEditableItem)["iActiveId"].Controls[0] as Telerik.Web.UI.RadComboBox;
if (ddlActive != null)
{
ddlActive.AutoPostBack = true;
ddlActive.SelectedIndexChanged += new Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventHandler(ddlActive_SelectedIndexChanged);
{
}
}
protected void ddlActive_SelectedIndexChanged(object sender, System.EventArgs e)
{
int active;
int.TryParse(ddlActive.SelectedValue, out active);
Telerik.Web.UI.GridEditableItem editableItem = (sender as Telerik.Web.UI.RadComboBox).NamingContainer as Telerik.Web.UI.GridEditableItem;
Telerik.Web.UI.RadComboBox ddl = editableItem["iParticipationStatusId"].Controls[0] as Telerik.Web.UI.RadComboBox;
ddl.DataSource = codeTablesMng.GetCodeTable("tbl_code_ParticipationStatus", "iActiveId", active);
ddl.DataBind();
}
The problem that in update it's work and in Insert it's not work.
Please your help.
Thank you.
Chaya
9 Answers, 1 is accepted
Try with the following if statement instead:
if
(e.Item
is
Telerik.Web.UI.GridEditableItem && e.Item.IsInEditMode)
{
}
This will evaluate to true both for the edit and insert form.
Regards,
Veli
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
in update it's working, but in Insert it's not working
Can you post some sample code from your grid definition (both markup and codebehind) we can examine?
Sincerely yours,
Veli
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Yeshivas.aspx.cs" Inherits="Pages_Lists_Yeshivas" %>
<%@ Register TagPrefix="UC1" TagName="headerUC" Src="~/UC/headerUC.ascx" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="Infra" Namespace="Infra.UI" TagPrefix="my" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../../Stylesheets/Global.css" rel="stylesheet" type="text/css" />
<script src="../../JS/Grid.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<UC1:headerUC ID="HeaderUC1" runat="server" />
<font class="FirstHeaderCenter">ישיבות </font>
<my:RadEditGrid ID="Grid_gen_Yeshiva" runat="server" AutoGenerateColumns="False" GridLines="None"
SpInsertName="PRG_gen_Yeshiva_INS" SpUpdateName="PRG_gen_Yeshiva_UPD" SpSelectName="PRG_gen_Yeshiva_SLCT"
AllowPaging="True" PageSize="15" AllowSorting="True" Font-Strikeout="False" OnItemDataBound="Grid_gen_Yeshiva_ItemDataBound" OnItemCreated="Grid_gen_Yeshiva_ItemCreated"
AllowFilteringByColumn="True" OnInsertCommand="Grid_gen_Yeshiva_InsertCommand" OnUpdateCommand="Grid_gen_Yeshiva_UpdateCommand" OnItemCommand="Grid_gen_Yeshiva_ItemCommand"
OnNeedDataSource="Grid_gen_Yeshiva_NeedDataSource" >
<MasterTableView DataKeyNames="iYeshivaId" AllowMultiColumnSorting="True" CommandItemDisplay="Top"
EditMode="PopUp" Width="100%" >
<CommandItemTemplate>
<asp:LinkButton runat="server" ID="AddNew" Text="הוסף " CommandName="InitInsert">
<asp:Image ID="imgAdd" runat="server" ImageUrl="~/Images/Icons/New.png" />
</asp:LinkButton>
</CommandItemTemplate>
<PagerStyle AlwaysVisible="true" PageSizeLabelText="שורות " FirstPageText="ראשון "
LastPageText="אחרון " NextPageText="הבא " PrevPageText="קודם " PagerTextFormat="Change page: {4} דף {0} מתוך {1}, רשומות {2} עד {3} מתוך {5}" />
<DetailTables>
<my:GridTableView Name="Grid_CustomerInYeshiva" Caption="לקוחות בישיבה " CommandItemDisplay="top"
DataKeyNames="iPersonId,iYeshivaId" EditMode="PopUp" Width="100%"
AllowPaging="false" AllowFilteringByColumn="false" Dir="rtl">
<CommandItemTemplate>
</CommandItemTemplate>
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="iYeshivaId" MasterKeyField="iYeshivaId" />
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderText="ערוך " EditText="ערוך "
UpdateText="שמור " CancelText="בטל " InsertText="הוסף " ButtonType="ImageButton">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn UniqueName="iYeshivaId" DataField="iYeshivaId" HeaderText="iYeshivaId"
Visible="false" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="iPersonId" DataField="iPersonId" HeaderText="iPersonId"
Visible="false" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvName" DataField="nvName"
HeaderText="שם לקוח " ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn UniqueName="dtEntryDate" DataField="dtEntryDate" HeaderText=" תאריך כניסה "
DataFormatString="{0:dd/MM/yyyy}" AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains" ReadOnly="true" >
</telerik:GridDateTimeColumn>
<telerik:GridDateTimeColumn UniqueName="dtLeavingDate" DataField="dtLeavingDate" HeaderText=" תאריך עזיבה "
DataFormatString="{0:dd/MM/yyyy}" AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains" Visible="false" >
</telerik:GridDateTimeColumn>
</Columns>
<EditFormSettings CaptionFormatString="נא הזן פרטי לקוח בישיבה " EditColumn-CancelText="בטל "
EditColumn-InsertText="הוסף " EditColumn-EditText="ערוך " EditColumn-UpdateText="עדכן ">
<PopUpSettings Modal="true" />
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
</my:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderText="ערוך " EditText="ערוך "
UpdateText="שמור " CancelText="בטל " InsertText="הוסף " ButtonType="ImageButton">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn UniqueName="iYeshivaId" DataField="iYeshivaId" HeaderText="iYeshivaId"
Visible="false" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvYeshivaName" DataField="nvYeshivaName" HeaderText="שם ישיבה "
AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="iAddressId_UPD" DataField="iAddressId" HeaderText="iAddressId"
Visible="false" ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvCitySynonymName" DataField="nvCitySynonymName"
HeaderText="עיר " AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains"
ReadOnly="true">
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="iCityId" ListDataMember="v_add_City" SortExpression="nvCitySynonymName"
ListTextField="nvCitySynonymName" ListValueField="iCityId" HeaderText="עיר " DataField="iCityId"
EmptyListItemText=" " Visible="false" DropDownControlType="RadComboBox">
</telerik:GridDropDownColumn>
<telerik:GridDropDownColumn UniqueName="iStreetId" ListDataMember="t_add_Streets"
SortExpression="nvStreetSynonymName" ListTextField="nvStreetSynonymName" ListValueField="iStreetId"
HeaderText="רחוב " EmptyListItemText=" " Visible="false">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn EditFormColumnIndex="1" UniqueName="nvStreetSynonymName" DataField="nvStreetSynonymName"
HeaderText="רחוב " Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvYeshivaTypeName" DataField="nvYeshivaTypeName"
HeaderText="סוג ישיבה " ReadOnly="true" AutoPostBackOnFilter="true" ShowFilterIcon="false"
CurrentFilterFunction="Contains" >
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="iYeshivaTypeId"
ListDataMember="t_code_YeshivaType" SortExpression="nvTypeName" ListTextField="nvYeshivaTypeName"
ListValueField="iYeshivaTypeId" HeaderText="סוג ישיבה " DataField="iYeshivaTypeId"
EmptyListItemText=" " Visible="false" DropDownControlType="RadComboBox" >
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn UniqueName="nvYeshivaManager" DataField="nvYeshivaManager"
HeaderText="ראש הישיבה " AutoPostBackOnFilter="true"
ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvPhoneNumber" DataField="nvPhoneNumber" MaxLength="11"
HeaderText="טלפון " AutoPostBackOnFilter="true"
ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvContact" DataField="nvContact"
HeaderText="איש קשר " AutoPostBackOnFilter="true"
ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvContactPhoneNumber" DataField="nvContactPhoneNumber" MaxLength="11"
HeaderText="טלפון איש קשר " AutoPostBackOnFilter="true"
ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="nvYeshivaStatusName" DataField="nvYeshivaStatusName"
HeaderText="סטטוס " ReadOnly="true" AutoPostBackOnFilter="true" ShowFilterIcon="false"
CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="iYeshivaStatusId"
ListDataMember="t_code_YeshivaStatus" SortExpression="nvStatusName" ListTextField="nvYeshivaStatusName"
ListValueField="iYeshivaStatusId" HeaderText="סטטוס " DataField="iYeshivaStatusId"
EmptyListItemText=" " Visible="false" DropDownControlType="RadComboBox">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn UniqueName="nvComment" DataField="nvComment"
HeaderText="הערות " AutoPostBackOnFilter="true"
ShowFilterIcon="false" CurrentFilterFunction="Contains">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="numCustomer" DataField="numCustomer" HeaderText="מספר נערים " ReadOnly="true"
AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains" >
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings CaptionFormatString="נא הזן פרטי ישיבה " EditColumn-InsertText="הוסף " EditColumn-UpdateText="עדכן " EditColumn-CancelText="בטל "
PopUpSettings-Modal="true" PopUpSettings-Width="250px">
<FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
</MasterTableView>
<SelectedItemStyle BackColor="#99CCFF" BorderColor="#CCFFFF" />
<ClientSettings AllowDragToGroup="True">
<ClientEvents OnPopUpShowing="PopUpShowing" />
</ClientSettings>
</my:RadEditGrid>
</form>
</body>
</html>
codebehind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Yedidim;
using Telerik.Web.UI;
using Infra;
public partial class Pages_Lists_Yeshivas : System.Web.UI.Page
{
CodeTablesMng codeTablesMng;
public Yedidim.commandName itemCommandName;
RadComboBox ddlCity = new Telerik.Web.UI.RadComboBox();
public DataSet YeshivasData
{
get
{
DataSet obj = SessionMng.YeshivasData;
if (obj != null)
return (DataSet)obj;
DataSet dsYeshivas = Grid_gen_Yeshiva.Select();
dsYeshivas.Tables.Add(codeTablesMng.GetCodeTable("t_code_YeshivaType"));
dsYeshivas.Tables.Add(codeTablesMng.GetCodeTable("t_code_YeshivaStatus"));
dsYeshivas.Tables.Add(codeTablesMng.GetCodeTable("v_add_City"));
dsYeshivas.Tables.Add(codeTablesMng.GetCodeTable("t_add_Streets", "iCityId", 0));
SessionMng.YeshivasData = dsYeshivas;
obj = SessionMng.YeshivasData;
return (DataSet)obj;
}
}
protected void Page_Load(object sender, EventArgs e)
{
HeaderUC1.LoadHeaderUC();//שורת קוד זו חיבת להופיע ראשונה בפונקציה
HeaderUC1.AddToAjax("Grid_gen_Yeshiva", true);
string myScript = "<script language='javascript'>setScrollHeight('Grid_gen_Yeshiva',10);</script>";
ScriptManager.RegisterStartupScript(this, this.GetType(), "MyScript", myScript, false);
}
protected void Page_PreRender(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
{
this.Grid_gen_Yeshiva.AllowMultiRowEdit = true;
this.Grid_gen_Yeshiva.MasterTableView.Rebind();
}
}
protected void Grid_gen_Yeshiva_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
DataSet dsMain = this.YeshivasData;
DataSet dsCustomerInYeshiva = new DataSet();
//השמה לגריד של ישיבות
this.Grid_gen_Yeshiva.DataSource = dsMain;
//השמה לגריד של לקוחות בישיבה
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[1].Copy());
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[2].Copy());
Grid_gen_Yeshiva.MasterTableView.DetailTables[0].DataSource = dsCustomerInYeshiva;
}
protected void Page_Init(object sender, EventArgs e)
{
if ((SessionMng.CurrentUser as Yedidim.User) != null)
{
SessionMng.YeshivasData = null;
if (Application["dsCodeTables"] != null)
{
codeTablesMng = Application["dsCodeTables"] as CodeTablesMng;
}
}
}
protected void Grid_gen_Yeshiva_InsertCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
Grid_gen_Yeshiva.Insert(source, e);
SessionMng.YeshivasData = null;
DataSet dsMain = this.YeshivasData;
DataSet dsCustomerInYeshiva = new DataSet();
//השמה לגריד של ישיבות
this.Grid_gen_Yeshiva.DataSource = dsMain;
//השמה לגריד של לקוחות בישיבה
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[1].Copy());
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[2].Copy());
Grid_gen_Yeshiva.MasterTableView.DetailTables[0].DataSource = dsCustomerInYeshiva;
}
protected void Grid_gen_Yeshiva_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.Item.OwnerTableView.Name == string.Empty)
Grid_gen_Yeshiva.SpUpdateName="PRG_gen_Yeshiva_UPD";
else
Grid_gen_Yeshiva.SpUpdateName="gen_CustomerInYeshiva_UPD";
Grid_gen_Yeshiva.Update(source, e);
SessionMng.YeshivasData = null;
DataSet dsMain = this.YeshivasData;
DataSet dsCustomerInYeshiva = new DataSet();
//השמה לגריד של ישיבות
this.Grid_gen_Yeshiva.DataSource = dsMain;
//השמה לגריד של לקוחות בישיבה
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[1].Copy());
dsCustomerInYeshiva.Tables.Add(dsMain.Tables[2].Copy());
Grid_gen_Yeshiva.MasterTableView.DetailTables[0].DataSource = dsCustomerInYeshiva;
}
protected void Grid_gen_Yeshiva_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item.OwnerTableView.Name == string.Empty)
{
if (itemCommandName == Yedidim.commandName.InitInsert)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
RadComboBox list = (e.Item as GridEditableItem)["iYeshivaStatusId"].Controls[0] as RadComboBox;
list.SelectedValue = "1";
RadComboBox list2 = (e.Item as GridEditableItem)["iCityId"].Controls[0] as RadComboBox;
list2.MarkFirstMatch = true;
RadComboBox list3 = (e.Item as GridEditableItem)["iStreetId"].Controls[0] as RadComboBox;
list3.MarkFirstMatch = true;
list3.DataSource = codeTablesMng.GetCodeTable("t_add_Streets", "iCityId", Convert.ToInt32(list2.SelectedValue));
}
}
}
}
protected void Grid_gen_Yeshiva_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.Item.OwnerTableView.Name == string.Empty)
if (e.CommandName == Yedidim.commandName.InitInsert.ToString())
itemCommandName = Yedidim.commandName.InitInsert;
}
protected void Grid_gen_Yeshiva_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item.OwnerTableView.Name == string.Empty)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
string ErrorMsg = "* חובה להזנה ";
//שדה שם ישיבה חובה להזנה
Infra.UI.RequiredFieldValidator validatornvYeshivaName = Validator.CreateTextBoxValidator(e, "nvYeshivaName", ErrorMsg);
//שדה עיר חובה להזנה
Infra.UI.RequiredFieldValidator validatorCity = Validator.CreateComboBoxValidator(e, "iCityId", ErrorMsg);
}
}
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
ddlCity = (e.Item as GridEditableItem)["iCityId"].Controls[0] as RadComboBox;
if (ddlCity != null)
{
ddlCity.AutoPostBack = true;
ddlCity.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(ddlCity_SelectedIndexChanged);
}
}
}
protected void ddlCity_SelectedIndexChanged(object sender, System.EventArgs e)
{
//הצגת הרחובות בקומבו בהתאם לעיר שנבחרה
int city;
int.TryParse(ddlCity.SelectedValue, out city);
GridEditableItem editableItem = (sender as Telerik.Web.UI.RadComboBox).NamingContainer as GridEditableItem;
RadComboBox ddl = editableItem["iStreetId"].Controls[0] as RadComboBox;
ddl.DataSource = codeTablesMng.GetCodeTable("t_add_Streets", "iCityId", city);
ddl.DataBind();
}
}
thank you for your help!
Try with the following check:
if
((e.Item
is
Telerik.Web.UI.GridEditFormItem || e.Item
is
Telerik.Web.UI.GridEditFormInsertItem) && e.Item.IsInEditMode)
{
}
Other than that, the code seems OK.
Sincerely yours,
Veli
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
We tried to do by this code.
But only in updating and it works ant in inserting no.
the code:
protected void Grid_gen_Yeshiva_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item.OwnerTableView.Name == string.Empty)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
string ErrorMsg = "* חובה להזנה ";
//שדה שם ישיבה חובה להזנה
Infra.UI.RequiredFieldValidator validatornvYeshivaName = Validator.CreateTextBoxValidator(e, "nvYeshivaName", ErrorMsg);
//שדה עיר חובה להזנה
Infra.UI.RequiredFieldValidator validatorCity = Validator.CreateComboBoxValidator(e, "iCityId", ErrorMsg);
}
}
if ((e.Item is GridEditFormItem || e.Item is GridEditFormInsertItem) && e.Item.IsInEditMode)
{
ddlCity = (e.Item as GridEditableItem)["iCityId"].Controls[0] as RadComboBox;
if (ddlCity != null)
{
ddlCity.AutoPostBack = true;
ddlCity.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(ddlCity_SelectedIndexChanged);
}
}
}
We cannot identify the cause of this misbehavior by the sample code you provided. The code seems fine and the combo in the edit form should autopostback both for edited and inserted items.
Consider updating Telerik RadControls for ASP.NET AJAX to the latest version and see if it makes any difference. If the problem persists, we recommend you open a regular support ticket where you can send us a simplified test project we can debug locally. This will help us better identify the cause of this issue and advise you further.
Kind regards,
Veli
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head runat="server"> |
<title></title> |
<script src="JScript.js" type="text/javascript"></script> |
</head> |
<body> |
<form id="form1" runat="server"> |
<asp:ScriptManager ID="ScriptManager1" runat="server"> |
</asp:ScriptManager> |
<telerik:RadGrid ID="Grid_CustomerInSite" runat="server" AutoGenerateColumns="False" |
GridLines="None" AllowPaging="True" PageSize="15" AllowSorting="True" Font-Strikeout="False" |
AllowFilteringByColumn="true" OnInsertCommand="Grid_CustomerInSite_InsertCommand" |
OnNeedDataSource="Grid_CustomerInSite_NeedDataSource" OnUpdateCommand="Grid_CustomerInSite_UpdateCommand" |
OnItemCreated="Grid_CustomerInSite_ItemCreated"> |
<MasterTableView DataKeyNames="" AllowMultiColumnSorting="True" AllowAutomaticInserts="true" |
AllowAutomaticUpdates="true" CommandItemDisplay="Top" EditMode="PopUp" Width="100%"> |
<CommandItemTemplate> |
<asp:LinkButton runat="server" ID="AddNew" Text="הוסף" CommandName="InitInsert"> |
<asp:Image ID="imgAdd" runat="server" ImageUrl="" /> |
</asp:LinkButton> |
</CommandItemTemplate> |
<PagerStyle AlwaysVisible="true" PageSizeLabelText="שורות" FirstPageText="ראשון" |
LastPageText="אחרון" NextPageText="הבא" PrevPageText="קודם" PagerTextFormat="Change page: {4} דף {0} מתוך {1}, רשומות {2} עד {3} מתוך {5}" /> |
<Columns> |
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderText="ערוך" EditText="ערוך" |
UpdateText="שמור" CancelText="בטל" InsertText="הוסף" ButtonType="ImageButton"> |
</telerik:GridEditCommandColumn> |
<telerik:GridBoundColumn UniqueName="nvOrganizationName" DataField="nvOrganizationName" |
HeaderText="ארגון" ReadOnly="true" AutoPostBackOnFilter="true" ShowFilterIcon="false" |
CurrentFilterFunction="Contains"> |
</telerik:GridBoundColumn> |
<telerik:GridDropDownColumn UniqueName="iOrganizationId" ListDataMember="Table2" |
SortExpression="nvOrganizationName" ListTextField="nvOrganizationName" ListValueField="iOrganizationId" |
HeaderText="ארגון" DataField="iOrganizationId" EmptyListItemText=" " Visible="false"> |
</telerik:GridDropDownColumn> |
<telerik:GridBoundColumn UniqueName="nvProjectName" DataField="nvProjectName" HeaderText="פרויקט" |
ReadOnly="true" AutoPostBackOnFilter="true" ShowFilterIcon="false" CurrentFilterFunction="Contains"> |
</telerik:GridBoundColumn> |
<telerik:GridDropDownColumn UniqueName="iProjectId" ListDataMember="Table1" SortExpression="nvProjectName" |
ListTextField="nvProjectName" ListValueField="iProjectId" HeaderText="פרויקט" |
DataField="iProjectId" EmptyListItemText=" " Visible="false"> |
</telerik:GridDropDownColumn> |
</Columns> |
<EditFormSettings ColumnNumber="1" CaptionFormatString="נא הזן פרטי לקוח " PopUpSettings-Modal="true" |
PopUpSettings-Width="550px" EditColumn-CancelText="בטל" EditColumn-InsertText="הוסף" |
EditColumn-EditText="ערוך" EditColumn-UpdateText="עדכן"> |
<FormTableStyle GridLines="None" CellSpacing="0" CellPadding="1"></FormTableStyle> |
<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle> |
<EditColumn ButtonType="ImageButton" /> |
</EditFormSettings> |
</MasterTableView> |
<ClientSettings> |
<ClientEvents OnPopUpShowing="PopUpShowing" /> |
</ClientSettings> |
</telerik:RadGrid> |
</form> |
</body> |
</html> |
aspx.cs:
using System; |
using System.Collections.Generic; |
using System.Linq; |
using System.Web; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using Telerik.Web.UI; |
using System.Data; |
public partial class _Default : System.Web.UI.Page |
{ |
RadComboBox ddlOrganization = new Telerik.Web.UI.RadComboBox(); |
protected void Page_Load(object sender, EventArgs e) |
{ |
} |
protected void Grid_CustomerInSite_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
{ |
DataSet ds=new DataSet(); |
ds.Tables.Add(dtProject()); |
ds.Tables.Add(dtOrganization()); |
this.Grid_CustomerInSite.DataSource = ds; |
} |
protected void Grid_CustomerInSite_ItemCreated(object sender, GridItemEventArgs e) |
{ |
if ((e.Item is GridEditFormItem || e.Item is GridEditFormInsertItem) && e.Item.IsInEditMode) |
{ |
ddlOrganization = (e.Item as GridEditableItem)["iOrganizationId"].Controls[0] as RadComboBox; |
if (ddlOrganization != null) |
{ |
ddlOrganization.AutoPostBack = true; |
ddlOrganization.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(ddlOrganization_SelectedIndexChanged); |
} |
} |
} |
protected void ddlOrganization_SelectedIndexChanged(object sender, System.EventArgs e) |
{ |
int Organization; |
int.TryParse(ddlOrganization.SelectedValue, out Organization); |
GridEditableItem editableItem = (sender as Telerik.Web.UI.RadComboBox).NamingContainer as GridEditableItem; |
RadComboBox ddl = editableItem["iProjectId"].Controls[0] as RadComboBox; |
DataView dv = new DataView(dtProject(), "iOrganizationId=" + Organization, "", DataViewRowState.CurrentRows); |
ddl.DataSource = dv; |
ddl.DataBind(); |
} |
public DataTable dtOrganization() |
{ |
DataTable dt1 = new DataTable(); |
dt1.Columns.Add("iOrganizationId", typeof(Int32)); |
dt1.Columns.Add("nvOrganizationName", typeof(string)); |
DataRow dr1 = dt1.NewRow(); |
dr1["iOrganizationId"] = 1; |
dr1["nvOrganizationName"] = "לב לאחים"; |
dt1.Rows.Add(dr1); |
DataRow dr2 = dt1.NewRow(); |
dr2["iOrganizationId"] = 2; |
dr2["nvOrganizationName"] = "דור ההמשך"; |
dt1.Rows.Add(dr2); |
return dt1; |
} |
public DataTable dtProject() |
{ |
DataTable dt2 = new DataTable(); |
dt2.Columns.Add("iProjectId", typeof(Int32)); |
dt2.Columns.Add("nvProjectName", typeof(string)); |
dt2.Columns.Add("iOrganizationId", typeof(Int32)); |
dt2.Columns.Add("nvOrganizationName", typeof(string)); |
DataRow dr3 = dt2.NewRow(); |
dr3["iProjectId"] = 1; |
dr3["nvProjectName"] = "מדרשות"; |
dr3["iOrganizationId"] = 1; |
dr3["nvOrganizationName"] = "לב לאחים"; |
dt2.Rows.Add(dr3); |
DataRow dr4 = dt2.NewRow(); |
dr4["iProjectId"] = 2; |
dr4["nvProjectName"] = "כוללים"; |
dr4["iOrganizationId"] = 1; |
dr4["nvOrganizationName"] = "לב לאחים"; |
dt2.Rows.Add(dr4); |
DataRow dr5 = dt2.NewRow(); |
dr5["iProjectId"] = 3; |
dr5["nvProjectName"] = "סמינרים"; |
dr5["iOrganizationId"] = 2; |
dr5["nvOrganizationName"] = "דור ההמשך"; |
dt2.Rows.Add(dr5); |
DataRow dr6 = dt2.NewRow(); |
dr6["iProjectId"] = 4; |
dr6["nvProjectName"] = "ישיבות"; |
dr6["iOrganizationId"] = 2; |
dr6["nvOrganizationName"] = "דור ההמשך"; |
dt2.Rows.Add(dr6); |
return dt2; |
} |
protected void Grid_CustomerInSite_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
{ |
} |
protected void Grid_CustomerInSite_InsertCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
{ |
} |
} |
Thank you for your help.
Thanks for the sample code. I modified it to work with the GridDropDownListColumnEditor instance that is initialized in the edit form instead of directly binding the combo. Attached is the modified test page. Seems to work OK now. Check it out.
Best wishes,
Veli
the Telerik team