Dec 20, 2019, 7:49 PM
RowSelectionModel, SelectedRow it doesn't work for me
I'm trying to select (checked - does not appear) a row, after loading the data to the store and it doesn't work. Help me please
sm1.SelectedRows.Add(new SelectedRow("100"))
ASPX<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="wf_ca_perfilesopciones_arbol.aspx.cs" Inherits="Tattersall.Admin.NewControlAcceso.wf_ca_perfilesopciones_arbol" %>
<%@ Import Namespace="System.Collections.Generic" %>
<script runat="server">
</script>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Tree Filter - Ext.NET Examples</title>
<link href="/resources/css/examples.css" rel="stylesheet" />
<script>
function ClickLimpiarFiltros() {
App.filter_op_opcion.reset();
App.filter_op_constante.reset();
App.strOpciones.load();
}
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Hidden ID="hid_id_proceso" runat="server" />
<ext:Hidden ID="hid_op_proceso" runat="server" />
<ext:Hidden ID="param_pagesize" runat="server" Text="20" />
<ext:Viewport runat="server" Layout="BorderLayout">
<Items>
<ext:TreePanel
ID="treeMProcesos"
runat="server"
RootVisible="true"
Height="300"
Width="200"
UseArrows="true" Region="Center">
<SelectionModel>
<ext:TreeSelectionModel runat="server" ID="smProcesos">
<Listeners>
<Select Handler="#{hid_id_proceso}.setValue(record.data.id);#{hid_op_proceso}.setValue(record.data.text);#{strOpciones}.reload();" Buffer="200" />
</Listeners>
</ext:TreeSelectionModel>
</SelectionModel>
</ext:TreePanel>
<ext:GridPanel
ID="grdOpciones"
runat="server"
Title="Proceso : "
Collapsible="true"
Width="1500" Region="East" Visible="true">
<Store>
<ext:Store ID="strOpciones" RemoteSort="True" runat="server" PageSize="10" OnReadData="strOpciones_OnReadData">
<Model>
<ext:Model runat="server" IDProperty="id_opcion">
<Fields>
<ext:ModelField Name="id_opcion" />
<ext:ModelField Name="op_opcion" />
<ext:ModelField Name="op_constante" />
<ext:ModelField Name="id_proceso" />
<ext:ModelField Name="pr_proceso" />
</Fields>
</ext:Model>
</Model>
<Proxy>
<ext:PageProxy />
</Proxy>
<Parameters>
<ext:StoreParameter Name="limit" Value="#{param_pagesize}.value" Mode="Raw" />
</Parameters>
<Sorters>
<ext:DataSorter Property="op_opcion" Direction="ASC" />
</Sorters>
</ext:Store>
</Store>
<ColumnModel runat="server">
<Columns>
<ext:Column runat="server" Text="Opcion" Width="200" DataIndex="op_opcion" Resizable="false" MenuDisabled="true">
<Items>
<ext:TextField runat="server" ID="filter_op_opcion" />
</Items>
</ext:Column>
<ext:Column runat="server" Text="Constante" Width="75" DataIndex="op_constante" Flex="1">
<Items>
<ext:TextField runat="server" ID="filter_op_constante" />
</Items>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:CheckboxSelectionModel runat="server" />
</SelectionModel>
<View>
<ext:GridView
runat="server"
EmptyText="No hay opciones para Mostrar" />
</View>
<TopBar>
<ext:Toolbar runat="server" ID="tb_grilla">
<Items>
<ext:Button runat="server" Icon="Find" Text="Filtrar" ToolTip="Filtrar por criterios de busqueda">
<Listeners>
<Click Handler="#{strOpciones}.load();" />
</Listeners>
</ext:Button>
<ext:Button runat="server" Icon="Cancel" Text="Limpiar Filtro" ToolTip="Limpia creiterios de busqueda">
<Listeners>
<Click Handler="ClickLimpiarFiltros();"></Click>
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<BottomBar>
<ext:PagingToolbar runat="server" DisplayInfo="false" HideRefresh="true">
<Items>
<ext:Button ID="Button1" runat="server" Text="Submit Selected Records" StandOut="true">
<DirectEvents>
<Click OnEvent="Button1_Click">
<EventMask ShowMask="true" />
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="Button2" runat="server" Text="Marca Selected Records" StandOut="true">
<DirectEvents>
<Click OnEvent="Button2_Click">
<EventMask ShowMask="true" />
</Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
</Items>
</ext:Viewport>
<asp:PlaceHolder ID="PlaceHolder1" runat="server" />
<ext:Label ID="Label1" runat="server" />
</form>
</body>
</html>
.CSusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ETPAdministracion.BusinessFacade;
using ETPAdministracion.Common.Data;
using ETPAdministracion.Common.Nominas;
using Ext.Net;
using Fwp.common;
using Tattersall.Admin.Clases.ErroresGenericos;
using Tattersall.Admin.Clases.Util;
using Tattersall.Admin.RefreshPage;
namespace Tattersall.Admin.NewControlAcceso
{
public partial class wf_ca_perfilesopciones_arbol : BasePage
{
protected override void Page_Load(object sender, EventArgs e)
{
//base.Page_Load(sender, e);
if (!IsPostBack && !X.IsAjaxRequest)
{
CargaArbol();
}
}
private void CargaArbol()
{
///
//string id_sistema = "1";
Node root = new Node();
root.AllowDrag = false;
root.Expanded = true;
//root.NodeID = id_sistema;
root.Text = "Modulos";
Ext.Net.Button btnExpand = new Ext.Net.Button();
btnExpand.Text = "Expandir Todos";
btnExpand.Icon = Icon.ArrowOutLonger;
btnExpand.Listeners.Click.Handler = treeMProcesos.ClientID + ".expandAll();";
Ext.Net.Button btnCollapse = new Ext.Net.Button();
btnCollapse.Text = "Cerrar Todos";
btnCollapse.Icon = Icon.ArrowInLonger;
btnCollapse.Listeners.Click.Handler = treeMProcesos.ClientID + ".collapseAll();";
Toolbar toolBar = new Toolbar();
toolBar.ID = "Toolbar1";
toolBar.Items.Add(btnExpand);
toolBar.Items.Add(btnCollapse);
treeMProcesos.TopBar.Add(toolBar);
StatusBar statusBar = new StatusBar();
statusBar.ID = "StatusBar1";
statusBar.AutoClear = 1000;
treeMProcesos.BottomBar.Add(statusBar);
treeMProcesos.Listeners.ItemClick.Handler = statusBar.ClientID + ".setStatus({text: 'Node Selected: <b>' + record.data.text + '</b>', clear: false});";
treeMProcesos.Listeners.ItemExpand.Handler = statusBar.ClientID + ".setStatus({text: 'Node Expanded: <b>' + item.data.text + '</b>', clear: false});";
treeMProcesos.Listeners.ItemExpand.Buffer = 30;
treeMProcesos.Listeners.ItemCollapse.Handler = statusBar.ClientID + ".setStatus({text: 'Node Collapsed: <b>' + item.data.text + '</b>', clear: false});";
treeMProcesos.Listeners.ItemCollapse.Buffer = 30;
IList<co_ca_modulos> listModulos = new bf_ca_modulos().GetData(new co_ca_modulos { id_sistema = { id = 1 } });
foreach (co_ca_modulos modulo in listModulos)
{
Node treeNode = new Node();
//treeNode.NodeID = id_sistemamodulo.id_modulo.ToString();
treeNode.Text = modulo.mo_modulo;
treeNode.Qtip = modulo.mo_sigla;
root.Children.Add(treeNode);
IList<co_ca_procesos> procesos = new bf_ca_procesos().GetData(new co_ca_procesos { id_modulo = { id = modulo.id_modulo } });
if (procesos != null && procesos.Count > 0)
{
foreach (co_ca_procesos proceso in procesos)
{
Node treeNodehijo = new Node();
treeNodehijo.NodeID = proceso.id_proceso.ToString();
treeNodehijo.Text = proceso.pr_proceso;
treeNodehijo.Qtip = proceso.pr_proceso;
treeNode.Children.Add(treeNodehijo);
treeNodehijo.Leaf = true;
}
}
else
{
treeNode.Leaf = true;
}
}
treeMProcesos.Root.Add(root);
//strResponsable_OnReadData();
}
protected void strOpciones_OnReadData(object sender, StoreReadDataEventArgs e)
{
try
{
int start = e.Start;
int limit = NumInt.Init(e.Parameters.GetParameter("limit").Value);
limit = limit == 0 ? e.Limit : limit;
int page = (start / limit) + 1;
//btnAsociar.Disabled = false;
//btnDesasociar.Disabled = false;
int id_proceso = Int32.TryParse(hid_id_proceso.Text, out id_proceso) ? id_proceso : -1;
if (id_proceso > 0)
grdOpciones.Title = "Proceso: " + hid_op_proceso.Text;
else
grdOpciones.Title = "Debe seleccionar un proceso...";
co_ca_opciones_no Nomina = new co_ca_opciones_no();
Nomina.Pagina = page;
Nomina.RegistrosPorPaginas = limit;
Nomina.ColumnaOrden = e.Sort[0].Property;
Nomina.OrdenColumna = (FwpServerControls.FwpDataGridDataBound.Orden)
Enum.Parse(typeof(FwpServerControls.FwpDataGridDataBound.Orden), e.Sort[0].Direction.ToString(), true);
//Nomina.id_proceso = e.Parameters.GetParameter("id_proceso").Value.ValidaEntero("id_proceso");
Nomina.id_proceso = id_proceso;
IList<object> lista = new List<object>();
AgregarFiltrosOpciones(ref Nomina);
Nomina<co_ca_opciones_no> data = new bf_ca_opciones().GetNominaPO(Nomina);
//foreach (co_ca_opciones_no no in data.DataSource)
//{
// lista.Add(new
// {
// id_opcion = no.id_opcion,
// op_opcion = no.op_opcion,
// op_constante = no.op_constante,
// id_proceso = no.id_proceso,
// pr_proceso = no.pr_proceso,
// id_perfilopcion = no.id_perfilopcion,
// id_perfil = no.id_perfil,
// });
//}
lista.Add(new
{
id_opcion = 100,
op_opcion = "Ejemplo",
op_constante = "AAA",
id_proceso = "1",
pr_proceso = "44444",
id_perfilopcion = "12",
id_perfil = "1",
});
strOpciones.DataSource = lista;
strOpciones.PageSize = limit;
PageProxy pageProxy = strOpciones.Proxy[0] as PageProxy;
if (pageProxy != null) pageProxy.Total = data.Registros;
strOpciones.DataBind();
//RowSelectionModel sm1 = grdOpciones.SelectionModel.Primary as RowSelectionModel;
//sm1.SelectedRow = new SelectedRow("100");
//sm1.SelectedRows.Add(new SelectedRow("100"));
}
catch (Exception)
{
Mensajes.Error(ErrorText.ERROR_LIST_OPCIONES);
}
}
private void AgregarFiltrosOpciones(ref co_ca_opciones_no nomina)
{
//nomina.id_perfil = 49; //FiltrosNomina.ValidarFiltros<string>(nomina.pe_perfil, filter_pe_perfil.Text);
nomina.op_opcion = FiltrosNomina.ValidarFiltros<string>(nomina.op_opcion, filter_op_opcion.Text);
nomina.op_constante = FiltrosNomina.ValidarFiltros<string>(nomina.op_constante, filter_op_constante.Text);
}
//static node creation with children
private Node CreateNode(Node modulo)
{
Node treeNode = new Node();
treeNode.NodeID = modulo.NodeID;
treeNode.Text = modulo.Text;
treeNode.Qtip = modulo.Qtip;
IList<co_ca_procesos> procesos = new bf_ca_procesos().GetData(new co_ca_procesos { id_modulo = { id = Convert.ToInt16(modulo.NodeID) } });
if (procesos != null && procesos.Count > 0)
{
foreach (co_ca_procesos proceso in procesos)
{
Node treeNodehijo = new Node();
treeNodehijo.NodeID = proceso.id_proceso.ToString();
treeNodehijo.Text = proceso.pr_proceso;
treeNodehijo.Qtip = proceso.pr_proceso;
treeNode.Children.Add(treeNodehijo);
}
}
else
{
treeNode.Leaf = true;
}
return treeNode;
}
protected void Button1_Click(object sender, DirectEventArgs e)
{
StringBuilder result = new StringBuilder();
result.Append("<b>Selected Rows (ids)</b></br /><ul>");
RowSelectionModel sm = this.grdOpciones.GetSelectionModel() as RowSelectionModel;
//RowSelectionModel ss = this.grdOpciones.
foreach (SelectedRow row in sm.SelectedRows)
{
result.Append("<li>" + row.RecordID + "</li>");
}
result.Append("</ul>");
this.Label1.Html = result.ToString();
}
protected void Button2_Click(object sender, DirectEventArgs e)
{
StringBuilder result = new StringBuilder();
RowSelectionModel sm1 = this.grdOpciones.SelectionModel.Primary as RowSelectionModel;
sm1.SelectedRows.Add(new SelectedRow("100")) ;
result.Append("<b>Selected Rows (ids)</b></br /><ul>");
RowSelectionModel sm = this.grdOpciones.GetSelectionModel() as RowSelectionModel;
//RowSelectionModel ss = this.grdOpciones.
foreach ( row in sm.SelectedRows)
{
result.Append("<li>" + row.RecordID + "</li>");
}
result.Append("</ul>");
this.Label1.Html = result.ToString();
}
}
}