Nov 26, 2009, 11:55 AM
[CLOSED] Add items to a MultiSelect list in a AjaxEvent?
Hi
I need to add items to a MultiSelect list in a AjaxEvent. How do I do that?
Thanks
/Mikael
<%@ Page Language="C#" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void SetStoreMulti(object sender, AjaxEventArgs e)
{
ArrayList alStore = new ArrayList();
alStore.Add(new object[] { "ID1", "Value 1" });
alStore.Add(new object[] { "ID2", "Value 2" });
this.StoreTest.DataSource = alStore;
this.StoreTest.DataBind();
}
protected void ShowValues(object sender, AjaxEventArgs e)
{
string multi1 = e.ExtraParams["multi1"];
Coolite.Ext.Web.ListItem[] items1 = JSON.Deserialize<Coolite.Ext.Web.ListItem[]>(multi1);
StringBuilder sb = new StringBuilder();
foreach (Coolite.Ext.Web.ListItem item in items1)
{
sb.AppendFormat("Value: {0}<br />", item.Value);
}
Ext.MessageBox.Alert("Values", sb.ToString()).Show();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<ext:ScriptManager ID="ScriptManager1" runat="server">
</ext:ScriptManager>
<ext:Store ID="StoreTest" runat="server" >
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="Id" Type="String" />
<ext:RecordField Name="Text" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
<ext:MultiSelect ID="msTest" StoreID="StoreTest" runat="server" ValueField="Id" DisplayField="Text" ></ext:MultiSelect>
<ext:Button runat="server" Text="Set items" ID="btnSetItems">
<AjaxEvents>
<Click OnEvent="SetStoreMulti"></Click>
</AjaxEvents>
</ext:Button>
<ext:Button runat="server" Text="Show values" ID="btnShowValues">
<AjaxEvents>
<Click OnEvent="ShowValues">
<ExtraParams>
<ext:Parameter Name="multi1" Value="Ext.encode(#{msTest}.getValues())" Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</form>
</body>
</html>
/Mikael