JQuery UI Dialog without ID twice - asp.net

Trying to put multiple dialogs on one page - they need to be able to come up more than once. I'm using ASP.NET so the ID's of the content to go in the dialogs are mangled. All of the examples for bringing up the dialog multiple times seem to work with getting the initialized dialog back the second time by using the contents ID.
I see a couple of possible solutions but they seem like hacks:
1.) Store the .net mangled ID in some other field when I first bring up the dialog, and use that the second time around.
2.) Use the dialog events to put the contents of the dialog back into its original location in the dom when the dialog is closed.
<ol>
<li><div id="dotnetmangledjunk_Meaningful">stuff to go in the dialog</div></li>
<li><div id="dotnetmangledjunk_Meaningful">stuff to go in the dialog</div></li>
</ol>
Similar questions here and here

$("#<%=myControl.ClientID %>").dialog();

I ended up using a solution similar to Hunter's except client side. I used jquery on doc ready to build a new id for the dialog content, and put that id in a place that made sense for the code that launches each dialog. This had the added benefit of initializing the dialogs once - allowing the dialog to move the content to a new place in the dom, and calling it by ID.

Related

When to use wait.until in Appium?

I just started developing a test automation for an iOS app using Appium. I have to click several buttons in the app one after another with different XPath/Accessability ids.
I wondered, when to use the wait.until(ExpectedConditions.visibilityOf Element) expression.
Example:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//XCUIElementTypeApplication[#name=\"app\"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther/XCUIElementTypeTabBar/XCUIElementTypeButton[3]")));
Should I check every time before I click a button if this button is actually visible or existing on the current state of the app or is this just unnecessary and time-wasting?
In my opinion, you should use ExpectedConditions in two case:
Screen load takes long, so you not ending up trying to click something that has not loaded yet. If you find your tests flaky (sometimes pass some times fails) then this probably the main reason why it happens
If you have something like ajax on your screen you want to make sure the data is changed on the page. (Example is you created a post on Facebook, and want to make sure content displayed)

App is loading each time

I have web application of flex. It's swf file is attached on a tabview. Means there are 5 tabs on the page. On the tab Five a swf file is attached.
When I click on five tab it load the init method of main mxml file of flex application. Is there any way so we can stop to load it every time when we click on Five tab.
This app get the data from server when load the application. But I don't want to send the request again and again when click on tab everytime.
Using <a href=""> to display your tabs is probably making them reload with each click. Instead try a script solution to set the display value of each tab. Loop through them all and hide every one except the one clicked on.
This way you only load them once.
EDIT: looks like you are using JQuery. Some possible answers:
here
here
here (not jquery)

Using Jquery to create a drag and drop select box or text box? (not lists)

I've worked thru the various jquery UI demos of drag and drop and sortable. These show how to get items from one list to another. One example even shows a shopping cart demo.
Am I missing something in that a item won't be part of a post to the server right? so what use is this other than reorganizing a display on a page?
Is it possible to adapt this to some sort of input field?
TIA
J
item won't be part of a post to the server right? so what use is this
other than reorganizing a display on a page?
Allowing users to reorganize the elements in the page is a nice feature, even if you aren't notified on the server. For example, by allowing users to drag and drop elements, you may store his current page layout in localStorage so that the next time the user visits your page, the layout is restored automatically. You don't need to be notified on the server side what the user preferences are.
All of these jQuery plugins (sortable, draggable, etc.) have functions that you can hook into and trigger some server side processing as well. For example, when a user drags and drops an element from one section of the screen to another, you can perfectly make an ajax request and do some processing on your end. This would provide a very nice user experience to the user.
For example:
$( ".selector" ).droppable({
drop: function( event, ui ) {
$.post('http://server/somection',data{...});//do something on the server-side
};
});
Absolutely! jsfiddle with demo here.

Nested getcmsfields_forpopup showing in same popup in silverstripe

I have form in getcmsfields_forpopup for backend(admin panel) in silverstrip. In that form, I have added nested dataobjectmanager field to enter multiple dates(has_many relation). When main form open in popup window and I click on add date link, then second popup form open in the same window not in separate one. That means after entering date data and saving it, when I click on close button, whole form is closed rather going back to main form. Please help in this regard.
This can't be done using SilverStripe's default popup form unless, maybe, you extended the DataObject Manager field and had it render itself in an iFrame.
The best option would be to manage your parent DataObjects with DataObjectManger as well. DataObjectManager supports nested DataObjectManager fields. See this tutorial "Nested DataObjectManager" (on YouTube).
If you're able, can I suggest that you try out SilverStripe 3.0? The support for this kind of thing is much better in SilverStripe 3.0 than it is in 2.4.

Flex 3 - Force all controls to render at start

When I try to access the hidden TABs of my tab navigator control in action script, it returns a null error. But it works OK if I just activate the control in the user interface once. Obviously the control is not created until I use it. How do I make all the tabs automatically created by default ?
<mx:TabNavigator creationPolicy="all"/>
That should do it. Deferred instanciation is a feature, but sometimes it is a hassle.
The Flex framework is optimizing creation be default (creationPolicy="auto") so if you have a configuration dialog with a lot of tabs, for example, and the most useful tab is the first one, your application does not spend time and memory initializing the tabs that the user never sees.
This makes a lot of difference when dialogs like this never release, and is a good default to go with.
One thing to look at is using a private variable in your dialog/form instead of pushing the data to the control on the hidden page. This style treats the whole form as if it were a component, which it sort of is. To repeat: the MXML form/dialog/canvas is a class, and it can have data and methods in addition to containing other components.
Cheers
On a side note, I've run into the deferred-loading policy in a multi-state application, and circumvented it by forcing all elements to be included and invisible in the initial state. Something to consider, but only as a hack.

Resources