Hi
As I was adding more data in the radgrid, it does a postback , however, the items in the radlistbox is duplicated
everytime there is a postbac, attached is the code. To run, click the -> to add data to the right hand side radlistbox,
and add a row to the radgrid, once finished, click the button at the bottom, you can see the items in the radlistbox
is duplicated, sometimes even tripled, please help,this is an urgent issue.
thanks, -regards, Al
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for Auto
/// </summary>
public class Auto
{
//
// TODO: Add constructor logic here
//
public int VIN { get; set; }
public string Model { get; set; }
public string Make { get; set; }
public int HiddenMileage { get; set; }
}
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
using System.Collections.Generic;
public partial class Default : System.Web.UI.Page
{
public List<Auto> Cars;
public List<Auto> destCars = new List<Auto>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Grid
LoadCars();
//transfer boxes
this.lbAOBSource.ItemDataBound += new RadListBoxItemEventHandler(lbAOBDestination_ItemDataBound);
this.lbAOBDestination.Transferring += new RadListBoxTransferringEventHandler(lbAOBSource_Transferring);
lbAOBDestination.Updating += new RadListBoxUpdatingEventHandler(lbAOBDestination_Updating);
lbAOBDestination.PreRender += new EventHandler(lbAOBDestination_PreRender);
lbAOBDestination.Inserting += new RadListBoxInsertingEventHandler(lbAOBDestination_Inserting);
lbAOBDestination.DataBinding += new EventHandler(lbAOBDestination_DataBinding);
//lbAOBDestination.
this.lbAOBDestination.RegisterWithScriptManager = false;
this.lbAOBSource.DataValueField = "VIN";
this.lbAOBSource.DataTextField = "Model";
//set the object in session state
this.Session["Cars"] = Cars;
//set the destination list
}
else
{
Cars = (List<Auto>)this.Session["Cars"];
}
this.lbAOBSource.DataSource = Cars;
this.lbAOBSource.DataBind();
}
void lbAOBDestination_DataBinding(object sender, EventArgs e)
{
//throw new NotImplementedException();
}
void lbAOBDestination_Inserting(object sender, RadListBoxInsertingEventArgs e)
{
//throw new NotImplementedException();
}
void lbAOBDestination_PreRender(object sender, EventArgs e)
{
//throw new NotImplementedException();
}
void lbAOBDestination_Updating(object sender, RadListBoxUpdatingEventArgs e)
{
//throw new NotImplementedException();
}
void lbAOBSource_Transferring(object sender, RadListBoxTransferringEventArgs e)
{
//throw new NotImplementedException();
}
void lbAOBDestination_ItemDataBound(object sender, RadListBoxItemEventArgs e)
{
//throw ne//w NotImplementedException();
}
private void LoadCars()
{
Cars = new List<Auto>();
Auto Car = new Auto();
Car.Make = "Ford";
Car.Model = "Fiesta";
Car.HiddenMileage = 100000;
Car.VIN = 101;
Cars.Add(Car);
Car = new Auto();
Car.Make = "Isuzu";
Car.Model = "Rodeo";
Car.HiddenMileage = 5000;
Car.VIN = 102;
Cars.Add(Car);
Car = new Auto();
Car.Make = "Honda";
Car.Model = "Civic";
Car.HiddenMileage = 200000;
Car.VIN = 103;
Cars.Add(Car);
Car = new Auto();
Car.Make = "chevy";
Car.Model = "Cobalt";
Car.HiddenMileage = 100000;
Car.VIN = 104;
Cars.Add(Car);
}
protected void GridCars_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
GridCars.MasterTableView.DataSource = Cars;
//GridCars.DataSource = Cars;
//GridCars.DataBind();
}
protected void GridCars_InsertCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
Auto newCar = new Auto();
GridDataItem gdiItem = (GridDataItem)e.Item.DataItem;
newCar.VIN = int.Parse(((TextBox)e.Item.FindControl("txtVIN")).Text);
newCar.Make = ((TextBox)e.Item.FindControl("txtMake")).Text;
newCar.Model = ((TextBox)e.Item.FindControl("txtModel")).Text;
newCar.HiddenMileage = int.Parse(((TextBox)e.Item.FindControl("txtMileage")).Text);
if (Cars == null)
{
Cars = new List<Auto>();
LoadCars();
}
Cars.Add(newCar);
this.Session["Cars"] = Cars;
//e.ExecuteCommand("Cancel");
}
protected void GridCars_PreRender(object sender, EventArgs e)
{
GridCars.MasterTableView.Rebind();
//GridCars.Rebind();
}
protected void GridCars_ItemCommand(object source, GridCommandEventArgs e)
{
}
protected void GridCars_ItemInserted(object source, GridInsertedEventArgs e)
{
}
protected void GridCars_DeleteCommand(object source, GridCommandEventArgs e)
{
}
protected void GridCars_EditCommand(object source, GridCommandEventArgs e)
{
}
protected void GridCars_UpdateCommand(object source, GridCommandEventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "There are " + lbAOBDestination.Items.Count + " items in the destination";
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> <!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> <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" /> </head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="GridCars"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="GridCars" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <telerik:RadGrid ID="GridCars" runat="server" AutoGenerateEditColumn="True" AutoGenerateDeleteColumn="True" AllowAutomaticInserts="False" AllowAutomaticDeletes="False" AllowAutomaticUpdates="False" Skin="Office2007" OnNeedDataSource="GridCars_NeedDataSource" OnPreRender="GridCars_PreRender" OnInsertCommand="GridCars_InsertCommand" OnItemCommand="GridCars_ItemCommand" OnItemInserted="GridCars_ItemInserted" OnDeleteCommand="GridCars_DeleteCommand" OnEditCommand="GridCars_EditCommand" OnUpdateCommand="GridCars_UpdateCommand"> <MasterTableView CommandItemDisplay="Top" EditMode="PopUp" AutoGenerateColumns="True" DataKeyNames="VIN"> <EditFormSettings InsertCaption="Add Auto" CaptionFormatString="Edit VIN: {0}" CaptionDataField="VIN" EditFormType="Template" PopUpSettings-Modal="true"> <FormTemplate> <table id="Table1" cellspacing="1" cellpadding="1" width="250" border="0"> <tr> <td> </td> <td> </td> </tr> <tr> <td> VIN: </td> <td> <asp:TextBox ID="txtVin" Text='<%# Bind( "VIN") %>' runat="server"> </asp:TextBox> </td> </tr> <tr> <td> Make: </td> <td> <asp:TextBox ID="txtMake" Text='<%# Bind( "Make") %>' runat="server"> </asp:TextBox> </td> </tr> <tr> <td> Model: </td> <td> <asp:TextBox ID="txtModel" Text='<%# Bind( "Model") %>' runat="server"> </asp:TextBox> </td> </tr> <tr> <td> Mileage: </td> <td> <asp:TextBox ID="txtMileage" Text='<%# Bind( "HiddenMileage") %>' runat="server"> </asp:TextBox> </td> </tr> </table> <table style="width: 100%"> <tr> <td align="right" colspan="2"> <asp:Button ID="Button1" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'> </asp:Button> <asp:Button ID="Button2" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"> </asp:Button> </td> </tr> </table> </FormTemplate> <PopUpSettings Modal="True"></PopUpSettings> </EditFormSettings> </MasterTableView> </telerik:RadGrid> <telerik:RadListBox ID="lbAOBSource" runat="server" TransferToID="lbAOBDestination" AllowTransfer="True" Height="150" Width="360" Skin="Office2007" AllowTransferOnDoubleClick="true" AllowTransferDuplicates="false" SelectionMode="Multiple"> <ButtonSettings TransferButtons="Common" /> </telerik:RadListBox> <telerik:RadListBox ID="lbAOBDestination" runat="server" Height="150" Width="300" AllowTransferDuplicates="false" Skin="Office2007" AllowTransferOnDoubleClick="true" SelectionMode="Multiple" /> <br /> <asp:Button ID="Button1" runat="server" Text="Click Me" onclick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <div> </div> </form> </body> </html>