Dear Dojo,
I am trying to implement in a script a filter on the existing list showed on second photo. The filter I want to implement you can see it on the first photo
Can you please give me an example on how to implement a filter in script list ?
Thank you for your time and I am waiting for your response.
Best regards,
Catalin
Hi Catalin,
As an alternative to using those UIBlocks directly, you could use the IAS Toolkit. It's a handy framework that allows for cleaner code, hides the UIBlock logic and offers some major advantages such as eventing. To achieve the desired effect you could use the DropDown widget and set the IsDisplayFilterShown property to true.
There is a small tutorial available on DOJO on how to get started with it.
Hi Catalin,
you can use the ShowFilter property on the UI block definition:
UIBlockDefinition uibDef = new UIBlockDefinition();
uibDef.Type = UIBlockType.DropDown;
uibDef.DisplayFilter = true;
any idea how to put integrate what you rote to me in to this ?
// create a UI that will display a line of text and a textbox
UIBuilder uib = new UIBuilder();
uib.AppendLine(“Please enter a new value:”);
uib.AppendTextBox(“newval”);
// show the UI and wait for a response
UIResults uir = engine.ShowUI(uib);
// read response
string newval = uir.GetString(“newval”);
string [] numbers = new string [] { “val1|Selection 1”, “val2|Selection2”, “val3|Selection3”, “val4|Selection4”, “val5|Selection5” };
// Show a second UI with a dropdown and a button
UIBuilder uib2 = new UIBuilder();
uib2.AppendDropDown(“opt”, numbers);
uib2.AppendButton(“btn”, “Click me”);
UIResults uir2 = engine.ShowUI(uib2);
bool val1Selected = (uir2.GetString(“opt”) == “val1”);
bool buttonPressed = uir2.WasButtonPressed(“btn”);
Thank you
Hi,
It looks like you are using extensions. PLease extend your method so it supports the ShowFilter option, if not already be done.
Otherwise, you replace the code
from “uib2.AppendDropDown(“opt”, numbers);”
to
”
UIBlockDefinition uibDef = new UIBlockDefinition();
uibDef.Type = UIBlockType.DropDown;
uibDef.DisplayFilter = true;
uibDef.DestVar = “opt”;
foreach (string sOption in numbers)
{
uibDef.AddDropDownOption(sOption);
}
uib2.AppendBlock(uibDef);
”
Feel free to vote and select this answer as top answer so other users are aware as well.
Hi Catalin, the uib2.AppendDropdown is a shorthand for the full dropdown definition, so you would need to replace this with something like:
UIblockDefinition uibDef = new UIBlockDefinition();
uibDef.Type = UIBlockType.Dropdown;
foreach (string number in numbers)
{
uibDef.addDropdownOption(number);
}
uibDef.DisplayFilter = true;
uib.AppendBlock(uibDef);
Thank you, I did not managed to get ‘it to work. I will insist and keep you in touch.
Thank you all, I managed to make `it work.
UIBuilder uib2 = new UIBuilder();
//uib2.AppendDropDown("opt", new string[] { "val1|Selection 1", "val2|Selection2", "val3|Selection3", "val4|Selection4" });
UIBlockDefinition uiblock = new UIBlockDefinition();
uiblock.Type = UIBlockType.DropDown;
uiblock.DisplayFilter = true;
foreach (string item in options)
{
uiblock.AddDropDownOption(item);
}
uib2.AppendBlock(uiblock);
//uib2.AppendDropDown("opt", options);
uib2.AppendButton("btn", "Click me");
UIResults uir2 = engine.ShowUI(uib2);
bool val1Selected = (uir2.GetString("opt") == "val1");
bool buttonPressed = uir2.WasButtonPressed("btn");
Hi Catalin,
Another option (apart from start creating an interactive automation script) is to use memory files to define a set of possible values in your list. For example:
- First you can create a memory file containing the values that will be available in your drop-down list
- Next, you can assign that memory file to a script parameter:
- Then, when running the automation script, you could select the value from the list defined in the memory file:
Thank you Miguel but I would like to learn to implement ‘it by code.
I did not work for the moment. Tomorrow I will try again and keep you in touch.
Thank you
Thank you, the advice is perfect.
Thank you, I will take a look!