Feb 01, 2010, 12:42 PM
When i try to delete selected items from multi select, not all the items aredeleted
Hi,
I m trying to delete selected items from multiselect on the server side.
I m using the "Add script" function on the multi-select's store, but if i choose many rows. not all the rows are deleted, and i recieve this javascript error: 'newRecord' is null or not an object on the javascript code: if(!record.newRecord)
My relevant code:
.aspx file:
Yossi.
I m trying to delete selected items from multiselect on the server side.
I m using the "Add script" function on the multi-select's store, but if i choose many rows. not all the rows are deleted, and i recieve this javascript error: 'newRecord' is null or not an object on the javascript code: if(!record.newRecord)
My relevant code:
.aspx file:
<ext:Panel ID="pnlSouth" Title="Edit Channels" Icon="NoteEdit" Collapsible="true" runat="server" Height="300" Collapsed="true" ButtonAlign=Left>
<TopBar>
<ext:Toolbar Hidden="true" ID="tbProperties" Height="30" runat="server">
<Items>
<ext:ToolbarTextItem ID="LblForCbox" runat="server" Text="Choose a property to edit: "></ext:ToolbarTextItem>
<ext:ComboBox ID="TypeCBox" runat="server" AllowBlank="false">
<Items>
<ext:ListItem Text="CTIDs" Value="CTID" />
<ext:ListItem Text="Vars" Value="VAR" />
<ext:ListItem Text="Countries" Value="Country" />
<ext:ListItem Text="Machines' names" Value="MachineName" />
<ext:ListItem Text="Test Groups" Value="TestGroup" />
</Items>
<SelectedItem Value="CTID" />
</ext:ComboBox>
<ext:ToolbarSeparator ID="Seperator" runat="server"></ext:ToolbarSeparator>
<ext:ToolbarButton ID="SearchButton" runat="server" Text="Go!" Icon="Magnifier" >
<AjaxEvents>
<Click OnEvent="TypeChoosed" />
</AjaxEvents>
</ext:ToolbarButton>
</Items>
</ext:Toolbar>
</TopBar>
<Body>
<ext:MultiSelect Hidden="true" StoreID="StoreMultiSelectItems" DisplayField="Text" ValueField="value" ID="ItemsList" runat="server"
Width="440" Height="240" AllowDuplicates="false" KeepSelectionOnClick="WithCtrlKey">
<TopBar >
<ext:Toolbar Hidden="true" ID="TbEditProperties" runat="server" Height="30">
<items>
<ext:toolbartextitem id="lbladditem" runat="server" ></ext:toolbartextitem>
<ext:combobox id="CboxCountries" ListWidth="160" Width="160" runat="server" Hidden="true" >
</ext:combobox>
<ext:combobox id="CboxTestGroups" ListWidth="145 " Width="145" runat="server" Hidden="true" allowblank="false">
</ext:combobox>
<ext:textfield id="Machinetext" Hidden="true" AllowBlank="false" runat="server" width="150"></ext:textfield>
<ext:textfield id="VarText" Hidden="true" AllowBlank="false" runat="server" width="208"></ext:textfield>
<ext:textfield id="Ctidtext" AllowBlank="false" Width="200" Regex="^(C|c)(T|t)[0-9]+^" RegexText="CTID is not valid!!!" Hidden="true" runat="server" ></ext:textfield>
<ext:ToolbarFill/>
<ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server"></ext:ToolbarSeparator>
<ext:toolbarbutton id="addbutton" runat="server" text="Add" icon="add" >
<ajaxevents>
<click onevent="AddItem" >
<ExtraParams>
<ext:Parameter Name="multiSelectItems" Value="Ext.encode(#{ItemsList}.getValues(true))" Mode="Raw" />
</ExtraParams>
</click>
</ajaxevents>
</ext:toolbarbutton>
</items>
</ext:Toolbar>
</TopBar>
</ext:MultiSelect>
</Body>
<Buttons>
<ext:Button ID="btnSave" Disabled="true" runat="server" Text="Save" Icon="Disk">
<AjaxEvents>
<Click OnEvent="btnSave_Click">
<ExtraParams>
<ext:Parameter Name="multiSelectItems" Value="Ext.encode(#{ItemsList}.getValues(true))" Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="btnDelete" Disabled="true" runat="server"
Text="Delete" Icon="Delete" >
<AjaxEvents>
<Click OnEvent="btnDelete_Click">
<ExtraParams>
<ext:Parameter Name="SelectedItems" Value="#{ItemsList}.getIndexes('Text')" Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="btnCancel" Disabled="true" runat="server" Text="Cancel" Icon="Cancel">
<AjaxEvents>
<Click OnEvent="BtnCancel_Click"></Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Panel>
my code behind:
protected void btnDelete_Click(object sender, AjaxEventArgs e)
{
string selectedItemsIndexes = e.ExtraParams["SelectedItems"];
if (String.IsNullOrEmpty(selectedItemsIndexes))
{//There is nothing to delete.
Ext.Msg.Alert("Channels - Deleting Denied", "No item was selected!").Show();
return;
}
string[] arrItemIndexes = selectedItemsIndexes.Split(',');
foreach (string index in arrItemIndexes)
{//Delete all the selected items.
StoreMultiSelectItems.AddScript("{0}.remove({0}.getAt({1}));", StoreMultiSelectItems.ClientID, Convert.ToInt32(index));
}
}
Thanks!!!!Yossi.