Showing posts with label component. Show all posts
Showing posts with label component. Show all posts

Wednesday, March 28, 2012

How do I UnitTest My Atlas component

Hi,

Can anyone guide me how I can unit test my atlas component. Here is the scenario
I have existing app which is using javascript ...now i was thinking about removing it
and implement atlas functionality. However this gives me opportunity to write test
cases. Can someone tell me if MSTS has inbuilt functionality for this or which other
way i can test my component built in atlas. Will Nunitasp or Nunit work?

Thank you

VSTS does not have built-in support for JavaScript. Neither does NUnit. You might be able to use NUnitAsp, but I would recommend JsUnit:http://www.edwardh.com/jsunit/

-Mike

Wednesday, March 21, 2012

How can I reset the AJAX Timer component if the mouse is moved!

I have a few pages that use UpdatePanels and Timer components to refresh the content periodically. However I need to have it refresh only when the mouse hasn't been moved for a minute so it doesn't interrupt the user.

I have been using a javascript timer to refresh a custom component that uses callbacks but it is interfering with the AJAX UpdatePanel and causing State Corruption so I would like an all AJAX solution if possible.

Question 1: Can mouse movement reset an Ajax Timer, if so how?

Question 2: Is there a way to trigger the UpdatePanel from Javascript?

1. Use the method show here to get a refrence to the behavior for the timer, thenhttp://ajax.asp.net/docs/ClientReference/Sys.UI/BehaviorClass/BehaviorGetBehaviorsByName.aspx, call

Sys$UI$_Timer$_stopTimer & then this

Sys$UI$_Timer$_startTimer

Not sure if that will work exactly, but, through that or somthing similar you should be able to manipulate the timer on the client side.

2. Take a look at this post, it has a few differnt examples of how to do an update from javascript:http://forums.asp.net/thread/1541012.aspx


Thanks for the help there. I now need to figure out which behaviour name to look for in the timer, i guess?


Easily referencing behavior instances

It used to be tricky to get a reference to a behavior from client script, but now you can simply add a "BehaviorID" attribute to your control's property specification and it will be easily accessible on the client via ASP.NET AJAX's Sys.Application.findComponent(id) method or its $find(id) shortcut. (Note: If BehaviorID isn't specified, the behavior's ID on the client will be the same as the extender control's ClientID.) See DynamicPopulate or ResizableControl for examples.


I guess I should have added... that its used for the AJAX toolkit, so you might not be able to specify the BehaviorID, but you still should be able to get it with the find method.

I have tried the following code but it doesn't change the timer, it still goes off after a minute:

code = "function MainMenuPage_onmousemove(){"
code += " var b = $find('" & MT.ClientID & "');"
code += " if(b){"
code += " mouse_moved=1;"
code += " b.Sys$UI$_Timer$_stopTimer;"
code += " b.Sys$UI$_Timer$_startTimer;"
code += " }"
code += "}"

Please excuse the code formatting above (I create strings of the code snippets I need for the page and then useRegisterClientScriptBlock)

I'm not receiving any Javascript errors when I move the mouse. I know it's finding MT.ClientID as I use another javascript timer to display the mouse_moved variable. Perhaps I'm not changing the actual instance of the timer? Wild guess here. I really need to have more time to study the nitty gritty bits of AJAX but as it is I hardly have time to do this much.

I appreciate your time on this. I hope you have more bright ideas because I'm fresh out.


I tested the below code & it seems to workCool ... notice how i removed the Sys$UI$_Timer$ from the method call and added a () at the end
 code ="function MainMenuPage_onmousemove(){"; code +=" var b = $find('" + Timer1.ClientID +"');"; code +=" if(b){"; code +=" mouse_moved=1;"; code +=" b._stopTimer();"; code +=" b._startTimer();"; code +=" }"; code +="}";

Awesome. That worked.

Thank you very much.

How can I implement the following component using Ajax/ATLAS/Ajax Control Toolkit??

Hi All,

I'd like to implement something a little bit simmilar to a TreeView (with 2 levels). The structure I'd like to present is a set of Groups where one of them can be selected and then it expands (and collapses any previouslly opened group) presenting the subgroups and clicking on one of them it also expands to show the elements (also closing the previouslly opened groups).

MAIN GROUP 1 (opened)

-- GROUP 1 (closed)

-- GROUP2 (opened)

--- ELEMENT 1

--- ELEMENT2

-- GROUP3 (closed)

MAIN GROUP 2 (closed)

MAIN GROUP 3 (closed)

For user experience purposes I think two Accordion controls nested would be a very nice solution ( The external one will have the panes containing a Accordion control containing the Groups as panes and within this one a table or grid containing the elements), but I have to get the internal elements (either groups or elements) from a business object when a item is selected and shall be expanded).

Please could anyone tell me if it is possible and, if so, how can I implement this?

Thanks in advance,


Sergio

HI All,

Still looking for an answer.. Could anyone help me? I'm thinking about using AJax directly through a javascript function, get a table according the layout I need and put it into a DIV using innerHtml instead of using the component (a worst using experince, but seems the reasonable solution right now)Sad