Aug 04, 2009, 3:30 PM
Add record to store
How can I add records manually to a store? I have the following markup
<ext:Store ID="storeHorarios" runat="server">
<Reader>
<ext:JsonReader ReaderID="IdHorario">
<Fields>
<ext:RecordField Name="IdHorario">
</ext:RecordField>
<ext:RecordField Name="Nombre">
</ext:RecordField>
<ext:RecordField Name="Aula">
</ext:RecordField>
<ext:RecordField Name="Activo" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Lunes" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Martes" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Miercoles" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Jueves" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Viernes" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Sabado" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="Domingo" Type="Boolean">
</ext:RecordField>
<ext:RecordField Name="HoraInicio" Type="Date">
</ext:RecordField>
<ext:RecordField Name="HoraFin" Type="Date">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:FormLayout ID="formLayHorarios" runat="server">
<Anchors>
<ext:Anchor Horizontal="100%">
<ext:GridPanel ID="gridHorarios" runat="server" StoreID="storeHorarios" Height="150">
<ColumnModel>
<Columns>
<ext:Column DataIndex="IdHorario" Hidden="true">
</ext:Column>
<ext:Column DataIndex="Nombre" Header="Nombre Horario" />
<ext:Column DataIndex="Aula" Header="Aula" />
<ext:CheckColumn DataIndex="Activo" Header="Activo" />
</Columns>
</ColumnModel>
<Buttons>
<ext:Button ID="btnEditarHorario" runat="server" Text="Editar">
</ext:Button>
</Buttons>
<SelectionModel>
<ext:RowSelectionModel SingleSelect="true">
</ext:RowSelectionModel>
</SelectionModel>
</ext:GridPanel>
</ext:Anchor>
<ext:Anchor Horizontal="100%">
<ext:TextField ID="txtNombreHorario" runat="server" FieldLabel="Nombre" Note="Horario A, Horario Noche, etc">
</ext:TextField>
</ext:Anchor>
<ext:Anchor Horizontal="100%">
<ext:TextField ID="txtAula" runat="server" FieldLabel="Aula" Note="Aula A, Aula Principal, etc">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:Checkbox ID="chkHorarioActivo" runat="server" FieldLabel="Activo">
</ext:Checkbox>
</ext:Anchor>
<ext:Anchor Horizontal="100%">
<ext:CheckboxGroup ID="chkGroupDias" runat="server" ColumnsNumber="2" FieldLabel="Días">
<Items>
<ext:Checkbox runat="server" BoxLabel="Lunes" ID="chkLunes">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Martes" ID="chkMartes">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Miércoles" ID="chkMiércoles">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Jueves" ID="chkJueves">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Viernes" ID="chkViernes">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Sábado" ID="chkSábado">
</ext:Checkbox>
<ext:Checkbox runat="server" BoxLabel="Domingo" ID="chkDomingo">
</ext:Checkbox>
</Items>
</ext:CheckboxGroup>
</ext:Anchor>
<ext:Anchor>
<ext:TimeField ID="timeHoraInicio" runat="server" FieldLabel="Hora Inicio">
</ext:TimeField>
</ext:Anchor>
<ext:Anchor>
<ext:TimeField ID="timeHoraFin" runat="server" FieldLabel="Hora Fin">
</ext:TimeField>
</ext:Anchor>
</Anchors>
</ext:FormLayout>
<ext:Button ID="btnAgregarHorario" runat="server" Text="Agregar">
<AjaxEvents>
<Click OnEvent="btnAgregarHorario_Click">
</Click>
</AjaxEvents>
</ext:Button>
And the codebehind:protected void btnAgregarHorario_Click(object sender, EventArgs e)
{
InsertarRegistroStoreHorarios(0, txtNombreHorario.Text, txtAula.Text, chkHorarioActivo.Checked, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, chkSabado.Checked, chkDomingo.Checked, timeHoraInicio.Value, timeHoraFin.Value);
}
private void InsertarRegistroStoreHorarios(params object[] valores)
{
if (valores != null && valores.GetLength(0) > 0)
{
IDictionary<string, string> registro = new Dictionary<string, string>();
registro.Add("IdHorario", valores[0].ToString());
registro.Add("Nombre", valores[1].ToString());
registro.Add("Aula", valores[2].ToString());
registro.Add("Activo", valores[3].ToString());
registro.Add("Lunes", valores[4].ToString());
registro.Add("Martes", valores[5].ToString());
registro.Add("Miercoles", valores[6].ToString());
registro.Add("Jueves", valores[7].ToString());
registro.Add("Viernes", valores[8].ToString());
registro.Add("Sabado", valores[9].ToString());
registro.Add("Domingo", valores[10].ToString());
registro.Add("HoraInicio", valores[11].ToString());
registro.Add("HoraFin", valores[12].ToString());
storeHorarios.AddRecord(registro);
storeHorarios.DataBind();
}
}
"registro" has the correct values (image attached), no error is thrown and it runs all the code including the databind, but the gridPanel doesn't show the record inserted.