c# - Event being triggered without any declaration -
first of all, let me present exception in screen.
the control 'store1' not have directevent name 'datachanged' or handler absent
i have pages in project, when go under page "a" , change page "b" , hit backspace ( go last page ), error. if go page "b" , change "a", no error.
i noticed when error occurs, column added not there, , since bind ext.store happens when page not postback, can't watch value has been through.
now, grid holds ext.store :
<ext:gridpanel id="gridpanel1" idmode="explicit" runat="server" autoheight="true" title="solicitações" autoexpandcolumn="descricao"> <store> <ext:store id="store1" runat="server" groupfield="solcodigo" grouponsort="true"> <reader> <ext:jsonreader idproperty="solcodigo"> <fields> <ext:recordfield name="solcodigo" sortdir="desc" /> <ext:recordfield name="soldescricao" type="string" /> <ext:recordfield name="solstatus" type="string" /> <ext:recordfield name="prodescricao" type="string" /> <ext:recordfield name="soldatasolicitacao" type="date" /> <ext:recordfield name="soldataprevista" type="date" /> <ext:recordfield name="solnumarquivos" /> <ext:recordfield name="funnomesolucionador" type="string" /> <ext:recordfield name="solprioridade" /> <ext:recordfield name="soldatasolucao" type="string" /> </fields> </ext:jsonreader> </reader> </ext:store> </store> <view> <%-- <ext:groupingview runat="server" hidegroupedcolumn="true" emptygrouptext="indefinido" id="groupingview1" enablegrouping="false" enablegroupingmenu="false"> <getrowclass fn="getrowclass" /> </ext:groupingview>--%> </view> <columnmodel runat="server"> <columns> <ext:column dataindex="solcodigo" header="código" width="40"> </ext:column> <ext:column columnid="descricao" header="descrição" dataindex="soldescricao"> <renderer format="ellipsis" formatargs="50" /> <commands> <ext:imagecommand commandname="comando" /> </commands> <preparecommand fn="preparecellcommand" /> </ext:column> <ext:datecolumn header="solicitado em" dataindex="soldatasolicitacao"> </ext:datecolumn> <ext:datecolumn header="data prevista" dataindex="soldataprevista"> </ext:datecolumn> <ext:column columnid="projeto" header="projeto" dataindex="prodescricao"> </ext:column> <ext:column header="situação" dataindex="solstatus"> <renderer fn="situacaorender" /> </ext:column> <ext:column header="data de solução" dataindex="soldatasolucao"> </ext:column> <ext:column header="prioridade" dataindex="solprioridade"> <renderer fn="prioridaderender" /> </ext:column> </columns> </columnmodel> <directevents> <dblclick onevent="gridpanel1_dblclick" before="if(#{gridpanel1}.getselectionmodel().getselected() == undefined) return false; "> <eventmask showmask="true" /> <extraparams> <%-- or can use params[2].id value --%> <%-- <ext:parameter name="id" value="#{gridpanel1}.getselectionmodel().getselected().id;" mode="raw" />--%> <ext:parameter name="values" value="ext.encode(#{gridpanel1}.getrowsvalues({selectedonly:true}))" mode="raw" /> </extraparams> </dblclick> </directevents> <plugins> <%-- <ext:rowexpander id="rowexpander1" runat="server" > <template id="template1" runat="server"> <html> <p><b>detalhes:</b> {soldescricao}</p> <p><b>arquivos:</b> {solnumarquivos}</p> </html> </template> </ext:rowexpander>--%> </plugins> <selectionmodel> <ext:rowselectionmodel runat="server" singleselect="true" /> </selectionmodel> </ext:gridpanel>
and how bound
datatable dtsol = new datatable(); dtsol = sol.listar(); datatable dtresult = new datatable(); dtresult.columns.add("solcodigo", typeof(int)); dtresult.columns.add("soldescricao", typeof(string)); dtresult.columns.add("soldatasolicitacao", typeof(datetime)); dtresult.columns.add("soldataprevista", typeof(datetime)); dtresult.columns.add("prodescricao", typeof(string)); dtresult.columns.add("solstatus", typeof(string)); dtresult.columns.add("solprioridade", typeof(int)); dtresult.columns.add("soldatasolucao", typeof(string)); var result = r in dtsol.asenumerable() select dtresult.loaddatarow(new object[] { r.field<int>("solcodigo"), r.field<string>("soldescricao"), r.field<datetime>("soldatasolicitacao"), r.field<datetime>("soldataprevista"), r.field<string>("prodescricao"), r.field<string>("solstatus"), r.field<int>("solprioridade"), r.field<datetime>("soldatasolucao") > datetime.now.addminutes(1) ? string.empty : r.field<datetime>("soldatasolucao").tostring("dd/mm/yyyy") }, false); this.store1.datasource = result.tolist().any() ? dtresult : new datatable(); this.store1.databind();
thanks in advance.
edit user request
protected void gridpanel1_dblclick(object sender, directeventargs e) { //string id = e.extraparams["id"]; string json = e.extraparams["values"]; json = json.replace("solnumarquivos\":\"\"", "solnumarquivos\":0"); clsolicitacao sol = json.deserialize<list<clsolicitacao>>(json).first(); if (sol.solstatus == "df") { response.redirect("chamado.aspx?codigo=" + sol.solcodigo); } else { response.redirect("exibirchamado.aspx?codigo=" + sol.solcodigo); } }
edit 2
ext.onready(function(){ext.quicktips.init();ext.apply(ext.net.directmethods, { efetualogout:function(blnlogout,config){ext.net.directmethod.request("efetualogout",ext.applyif(config || {}, {params:{blnlogout:blnlogout}}));} });new ext.net.linkbutton({id:"menubuscar",labelalign:"top",renderto:"menubuscar_container",width:50,arrowalign:"bottom",iconalign:"top",iconcls:"icon-magnifier",menu:{id:"ctl00",xtype:"menu",width:140,items:[{id:"ctl01",xtype:"menutextitem",text:"código:"},{id:"txtbusca",xtype:"textfield",autocreate:{"tag":"input","type":"text","maxlength":7,"autocomplete":"off"},maxlength:7,directevents:{specialkey:{fn:function(el,e){var params=arguments;ext.net.directevent.confirmrequest({formproxyarg:"form1",eventmask:{showmask:true,msg:"buscando solicitações..."},before:function(el, type, action, extraparams){return e.getkey() == ext.eventobject.enter;},control:this,action:'specialkey'});},delay:20}}},{id:"ctl02",iconcls:"icon-magnifier",text:"buscar",directevents:{click:{fn:function(el,e){var params=arguments;ext.net.directevent.confirmrequest({formproxyarg:"form1",eventmask:{showmask:true,msg:"buscando solicitações..."},control:this});},delay:20}}}]},text:"buscar solicitação"});new ext.net.gridpanel({store:this.store1=new ext.ux.data.pagingstore({proxyid:"store1",autoload:true,reader:new ext.data.jsonreader({fields:[{name:"solcodigo",sortdir:"desc"},{name:"soldescricao",type:"string"},{name:"solstatus",type:"string"},{name:"prodescricao",type:"string"},{name:"soldatasolicitacao",type:"date",dateformat:"y-m-dth:i:s"},{name:"soldataprevista",type:"date",dateformat:"y-m-dth:i:s"},{name:"solnumarquivos"},{name:"funnomesolucionador",type:"string"},{name:"solprioridade"}],idproperty:"solcodigo"}),directeventconfig:{formproxyarg:"form1"},groupfield:"solcodigo",grouponsort:true,proxy:new ext.data.pagingmemoryproxy([{"solcodigo":2213,"soldatasolicitacao":"2013-04-16t11:16:23","soldataprevista":"2013-04-17t11:16:23","solprioridade":3,"soldescricao":"gostaria de ter acesso base dbcoeservicedesk servidor brsptp09.\r\n\r\no motivo pedido é para poder aplicar testes e implementar o próprio sistema servicedesk assim como foi relatado nas pendências relatadas pelo silva, paulo roberto da.\r\n\r\no usuário para qual o acesso é solicitado é " aseixas ". o mesmo solicitante deste chamado.\r\n\r\ngrato.","solstatus":"sp","prodescricao":"crct(petrobrás) - sp","funnomesolucionador":"daniela brito costa ","solnumarquivos":0},{"solcodigo":2214,"soldatasolicitacao":"2013-05-10t15:33:11","soldataprevista":"2013-05-11t15:33:11","solprioridade":3,"soldescricao":"sdfgdf","solstatus":"sf","prodescricao":"consiste","funnomesolucionador":"andre silva de seixas ","solnumarquivos":0},{"solcodigo":2215,"soldatasolicitacao":"2013-05-13t13:43:34","soldataprevista":"2013-05-14t13:43:34","solprioridade":3,"soldescricao":"abc","solstatus":"sp","prodescricao":null,"funnomesolucionador":null,"solnumarquivos":0},{"solcodigo":2216,"soldatasolicitacao":"2013-05-13t13:45:06","soldataprevista":"2013-05-14t13:45:06","solprioridade":3,"soldescricao":"abc","solstatus":"sp","prodescricao":null,"funnomesolucionador":null,"solnumarquivos":0},{"solcodigo":2217,"soldatasolicitacao":"2013-05-13t13:47:01","soldataprevista":"2013-05-14t13:47:01","solprioridade":3,"soldescricao":"abc","solstatus":"sp","prodescricao":null,"funnomesolucionador":null,"solnumarquivos":0},{"solcodigo":2218,"soldatasolicitacao":"2013-05-13t13:52:43","soldataprevista":"2013-05-14t13:52:43","solprioridade":3,"soldescricao":"asdf","solstatus":"sp","prodescricao":"connector","funnomesolucionador":null,"solnumarquivos":0},{"solcodigo":2219,"soldatasolicitacao":"2013-05-13t13:56:17","soldataprevista":"2013-05-14t13:56:17","solprioridade":3,"soldescricao":"asd","solstatus":"sp","prodescricao":"connector","funnomesolucionador":null,"solnumarquivos":0}], false),directevents:{datachanged:{fn:function(store){var params=arguments;ext.net.directevent.confirmrequest({formproxyarg:"form1",control:this,action:'datachanged'});},delay:20}}}),id:"gridpanel1",renderto:"gridpanel1_container",autoheight:true,title:"solicitações",autoexpandcolumn:"descricao",sm:this.contentplaceholder1_ctl00=new ext.grid.rowselectionmodel({proxyid:"",singleselect:true}),selectionmemory:false,cm:this.contentplaceholder1_ctl01=new ext.grid.columnmodel({proxyid:"",defaultsortable:true,columns:[{dataindex:"solcodigo",header:"código",width:40},{dataindex:"soldescricao",header:"descrição",id:"descricao",renderer:function(value){return ext.util.format.ellipsis(value,50);},commands:[{command:"comando"}],iscellcommand:true,preparecommand:preparecellcommand},{dataindex:"soldatasolicitacao",header:"solicitado em",xtype:"datecolumn",format:"d/m/y"},{dataindex:"soldataprevista",header:"data prevista",xtype:"datecolumn",format:"d/m/y"},{dataindex:"prodescricao",header:"projeto",id:"projeto"},{dataindex:"solstatus",header:"situação",renderer:situacaorender},{dataindex:"solprioridade",header:"prioridade",renderer:prioridaderender}]}),directevents:{dblclick:{fn:function(e){var params=arguments;ext.net.directevent.confirmrequest({formproxyarg:"form1",extraparams:{values:ext.encode(gridpanel1.getrowsvalues({selectedonly:true}))},eventmask:{showmask:true},before:function(el, type, action, extraparams){if(gridpanel1.getselectionmodel().getselected() == undefined) return false; },control:this,action:'dblclick'});},delay:20}}});new ext.window({id:"wndchromewarning",hidden:true,renderto:ext.get("form1"),height:220,width:400,closable:false,buttons:[{id:"ctl03",xtype:"button",text:"fechar aviso",listeners:{click:{fn:function(el,e){wndchromewarning.hide()}}}}],header:false,padding:25,contentel:"wndchromewarning_content",modal:true});});ext.net.resourcemgr.init({id:"ctl00$resourcemanager1",blank_image_url:"/extjs/resources/images/gray/s-gif/ext.axd",aspform:"form1"});
this 1 bit tricky, suspect when going page 'a', program trying locate handler datachanged
event. total shot in dark... maybe try adding said event directevents
element.
note: posting answer @ op's request. orginally in comments.
Comments
Post a Comment